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 ...; 显示 DML 结果形状。
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;

回滚(撤销)读写事务。

后续步骤