关于 spacetimedb-sql
介绍 SpacetimeDB SQL 语法与查询行为的技能,区分订阅限制与临时查询和数据变更,并提供索引及联接方面的指导。
主要功能
- 01订阅 SQL 的限制
- 02临时 SELECT 与 DML 语句
- 03标识符和字面值语法
- 04索引与联接建议
适用场景
- 01编写有效的表订阅语句
- 02构造 SQL 查询和数据修改
- 03检查订阅联接所需的索引
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ danmossa/ spacetimedb-skills --skill spacetimedb-sql安装后在 Claude Code 中输入/spacetimedb-sql确认已加载。
附带文件references/reference-sql.md
详细介绍
将此技能用于 SQL 语法和查询行为。
SQL 的核心区别
订阅 SQL 比临时查询/DML SQL 更严格:
- 订阅形式为
SELECT projection FROM relation [WHERE predicate]。 - 订阅仅返回单个表的完整行:
SELECT *或SELECT table.*。 - 订阅最多可引用两个表,且只能进行一次连接;连接列必须建立索引。
- 订阅不支持
INSERT、UPDATE、DELETE、列投影、算术表达式或任意连接。
通过 CLI/HTTP 执行的临时 SQL 支持:
- 使用列投影、
COUNT(*)、连接、WHERE和LIMIT的SELECT。 INSERT INTO table (columns...) VALUES (...)。DELETE FROM table [WHERE ...];不支持连接。UPDATE table SET column = literal [WHERE ...];不支持连接。- 实验性的
SET和SHOW系统变量语句。
查询指南
- SQL 中的表名必须使用架构中的确切表名,而不是生成的访问器名称。
- 字符串字面量使用单引号。标识符区分大小写;保留字或特殊名称需使用双引号括起来。
- 在上下文类型已知时,十六进制字面量可表示身份、连接 ID 或二进制值。
- 为筛选列和连接列建立索引,订阅场景尤其如此。
- 在连接较多的临时查询中,将筛选效果最显著的表/筛选条件放在前面。
参考索引
| 需求 | 打开 |
|---|---|
| SpacetimeDB SQL 参考 | references/reference-sql.md |
指南
- 解释允许的形式时,区分订阅 SQL 与变更/查询 SQL。
- 建议进行查询性能优化前,先检查表和索引的定义。
- CLI 执行详情请参阅 spacetimedb-cli。
评论
支持 Markdown