Spanner CLI 指令

本頁面會列出 Spanner CLI 支援的指令。

指令語法 說明
SHOW DATABASES; 列出資料庫。
USE database_name [ROLE role_name]; 切換資料庫。您設定的角色會用於精細的存取權控管機制
CREATE DATABASE database_name; 建立資料庫。
DROP DATABASE database_name; 刪除資料庫。
SHOW TABLES [schema]; 列出資料表。如果未提供結構定義,Spanner 會使用預設結構定義。
SHOW CREATE TABLE table_name; 顯示資料表結構定義。
SHOW COLUMNS FROM table_name; 顯示資料欄。
SHOW INDEX FROM table_name; 顯示索引。
CREATE TABLE ...; 建立資料表。
ALTER TABLE ...; 變更資料表結構定義。
DROP TABLE ...; 刪除資料表。
TRUNCATE TABLE table_name; 截斷資料表。只能刪除資料列。這個指令會以分區 DML 陳述式的形式執行,因此不具原子性。
CREATE INDEX ...; 建立索引。
DROP INDEX ...; 刪除索引。
CREATE ROLE ...; 建立角色。詳情請參閱 Spanner IAM 總覽
DROP ROLE ...; 刪除角色。
GRANT ...; 將權限授予角色。
REVOKE ...; 撤銷角色的權限。
SELECT ...; 執行查詢。
{ INSERT|UPDATE|DELETE } ...; 執行 DML 陳述式。
PARTITIONED { UPDATE|DELETE } ...; 執行分區 DML 陳述式。這個指令並非不可分割。
EXPLAIN SELECT ...; 顯示查詢執行計畫。詳情請參閱「查詢執行計畫」。
EXPLAIN {INSERT|UPDATE|DELETE} ...; 顯示 DML 執行計畫。
EXPLAIN ANALYZE SELECT ...; 顯示查詢執行計畫和最佳化工具統計資料。詳情請參閱「最佳化工具統計資料套件」。
EXPLAIN ANALYZE {INSERT|UPDATE|DELETE} ...; 顯示 DML 執行計畫和最佳化工具統計資料。詳情請參閱「最佳化工具統計資料套件」。
DESCRIBE SELECT ...; 顯示查詢結果形狀。
DESCRIBE {INSERT|UPDATE|DELETE} ... THEN RETURN ...; Show DML result shape.
ANALYZE; 開始建構新的查詢最佳化工具統計資料套件。
START BATCH DDL; 啟動 DDL 批次。
RUN BATCH; 執行批次指令。
ABORT BATCH; 中止批次指令。
BEGIN [RW] [ISOLATION LEVEL {SERIALIZABLE|REPEATABLE READ}] [PRIORITY {HIGH|MEDIUM|LOW}] [TAG tag_name]; 開始讀寫交易。詳情請參閱「交易指令」。
COMMIT; 提交讀寫交易。
ROLLBACK; 復原 (還原) 讀寫交易。
BEGIN RO [{seconds|RFC 3339-formatted_time}] [PRIORITY {HIGH|MEDIUM|LOW}] [TAG tag_name]; 開始唯讀交易。secondsRFC 3339-formatted_time 用於過時讀取作業。詳情請參閱「交易指令」。
CLOSE; 結束唯讀交易。
EXIT; 結束 Spanner CLI。

BATCH 指令

您可以使用 Spanner CLI 以批次模式執行 DDL 作業,將多個 DDL 陳述式分組為單一作業,加快結構定義變更速度。Spanner CLI 支援下列 BATCH 指令:

START BATCH DDL;

這個指令會啟動 DDL 批次。您在這個工作階段中執行的所有後續 DDL 陳述式 (例如 CREATE TABLEALTER TABLEDROP INDEX) 都會維持待處理狀態,不會立即套用至資料庫。

RUN BATCH;

執行 START BATCH DDL 和後續的 DDL 陳述式後,請使用 RUN BATCH 指令,將所有待處理的 DDL 作業以單一要求傳送至 Spanner。這項指令可減少與個別 DDL 陳述式相關的間接費用,進而加快結構定義修改速度。

ABORT BATCH;

如果您決定不套用待處理的 DDL 變更,請使用 ABORT BATCH 指令。這個指令會捨棄自您發出 START BATCH DDL 指令以來收集的所有 DDL 陳述式,有效回溯批次作業,並讓資料庫結構定義維持不變。

交易指令

Spanner CLI 支援下列交易 SQL 指令:

BEGIN [TRANSACTION] [RO] [seconds|RFC 3339-formatted_time ] [ISOLATION LEVEL {SERIALIZABLE|REPEATABLE READ}] [PRIORITY {HIGH|MEDIUM|LOW}] [TAG tag_name];

啟動交易。您可以設定下列選項:

  • 交易類型:開始讀寫 (不需參數) 或唯讀 (RO) 交易。
  • 過時讀取時間:以秒為單位或採用 RFC 3339 格式設定時間,從特定時間戳記讀取資料。
  • 隔離等級:設定讀寫交易的隔離等級。系統預設會使用可序列化隔離。詳情請參閱隔離等級總覽
  • 優先順序:設定交易的請求優先順序。系統預設會設為中等優先順序。
  • 代碼:使用 BEGIN 指令設定交易代碼。

    • 在讀寫交易中,使用 BEGIN TAG tag 新增標記。 Spanner CLI 會將標記新增為交易標記。此標記也會在交易中做為要求標記使用。
    • 在唯讀交易中,新增含有 BEGIN RO TAG tag 的標記。 由於唯讀交易不支援交易標記,Spanner 會將標記新增為要求標記。

COMMIT;

在讀寫交易中完成並永久套用所有變更。

CLOSE;

關閉唯讀交易。

ROLLBACK;

復原 (還原) 讀寫交易。

後續步驟