用途:帮助编写和理解 SpacetimeDB 的 SQL,包括订阅语句、CLI/HTTP 临时查询、DML 语句、系统变量、数据类型、字面量和标识符等。
主要能力与语法区分:订阅 SQL 比临时查询/DML SQL 更严格。订阅形式为 SELECT projection FROM relation [WHERE predicate];订阅只返回单表整行,需用 SELECT * 或 SELECT table.;最多引用两张表且只能有一个 join,join 列必须已建索引;订阅不支持 INSERT、UPDATE、DELETE、列投影、算术表达式或任意 join。通过 CLI/HTTP 的临时 SQL 支持:带列投影、COUNT()、join、WHERE 和 LIMIT 的 SELECT;INSERT INTO table (columns...) VALUES (...);DELETE FROM table [WHERE ...](无 join);UPDATE table SET column = literal [WHERE ...](无 join);实验性的 SET 与 SHOW 系统变量语句。
用法要点:SQL 中的表名使用 schema 中的确切表名,而非生成的访问器名称;字符串字面量用单引号;标识符区分大小写,保留字或不常见名称用双引号;在上下文类型已知时,十六进制字面量可表示身份、连接 ID 或二进制值。应为被过滤列和 join 列建立索引,尤其在订阅中;在 join 较多的临时查询中,把最具选择性的表和过滤条件放在前面。
限制:涉及 CLI 执行细节应转到 spacetimedb-cli;为性能调整查询前应先检查表与索引定义。