mcpField
S
spacetimedb-sql

spacetimedb-sql

github.com/danmossaデータ・データベース2164 回インストール19 週間前に更新
リポジトリ

spacetimedb-sql について

SpacetimeDB の SQL 構文とクエリ動作を扱うスキルです。サブスクリプションの制約と通常のクエリ・データ変更を区別し、インデックスや結合の指針も示します。

主な機能

  1. 01サブスクリプション SQL の制約
  2. 02通常の SELECT と DML 形式
  3. 03識別子とリテラルの構文
  4. 04インデックスと結合の指針

活用シーン

  1. 01有効なテーブルサブスクリプションの記述
  2. 02SQL クエリとデータ変更の構築
  3. 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] です。
  • サブスクリプションが返すのは、1 つのテーブルの全行のみです。SELECT * または SELECT table.* を使用します。
  • サブスクリプションで参照できるテーブルは最大 2 つで、結合は 1 つまでです。また、結合列にはインデックスが必要です。
  • サブスクリプションでは、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 のテーブル名には、生成されたアクセサー名ではなく、スキーマ上の正確なテーブル名を使用します。
  • 文字列リテラルにはシングルクォートを使用します。識別子は大文字と小文字が区別されるため、予約語や特殊な名前はダブルクォートで囲みます。
  • コンテキストから型がわかる場合は、16 進リテラルで ID、接続 ID、またはバイナリ値を表せます。
  • フィルター対象列と結合列にインデックスを設定します。特にサブスクリプションでは重要です。
  • 結合が多いアドホッククエリでは、最も選択性の高いテーブル/フィルターを先に配置します。

リファレンスマップ

必要な情報開く
SpacetimeDB SQL リファレンスreferences/reference-sql.md

ガイダンス

  • 使用可能な形式を説明する際は、サブスクリプション SQL と、データ変更/クエリ用 SQL を区別します。
  • パフォーマンス向上のためにクエリの変更を推奨する前に、テーブルとインデックスの定義を確認します。
  • CLI での実行方法については、spacetimedb-cli を参照してください。

コメント