本页面总结了 Spanner CLI 支持的命令。
| 命令语法 | 说明 |
|---|---|
SHOW DATABASES;
|
列出数据库。 |
USE
|
切换数据库。您设置的角色用于精细访问权限控制。 |
CREATE DATABASE
|
创建数据库。 |
DROP DATABASE
|
删除数据库。 |
SHOW TABLES [
|
列出表。如果您未提供架构,Spanner 会使用默认架构。 |
SHOW CREATE TABLE
|
显示表架构。 |
SHOW COLUMNS FROM
|
显示列。 |
SHOW INDEX FROM
|
显示索引。 |
CREATE TABLE ...;
|
创建表。 |
ALTER TABLE ...;
|
更改表架构。 |
DROP TABLE ...;
|
删除表。 |
TRUNCATE TABLE
|
截断表。仅删除行。此命令是非原子性的,因为它作为分区 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
|
启动一个读写事务。 如需了解详情,请参阅事务命令。 |
COMMIT;
|
提交读写事务。 |
ROLLBACK;
|
回滚(撤销)读写事务。 |
BEGIN RO [{
|
启动只读事务。seconds 和 RFC 3339-formatted_time 用于过时数据读取。如需了解详情,请参阅事务命令。 |
CLOSE;
|
结束只读事务。 |
EXIT;
|
退出 Spanner CLI。 |
BATCH 命令
借助 Spanner CLI,您可以在批处理模式下执行 DDL 操作,从而将多个 DDL 语句分组到一个操作中,并加快架构更改速度。
Spanner CLI 支持以下 BATCH 命令:
START BATCH DDL;
此命令会启动 DDL 批处理。您在此会话中执行的所有后续 DDL 语句(例如 CREATE TABLE、ALTER TABLE、DROP 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;
回滚(撤销)读写事务。
后续步骤
- 详细了解 Spanner CLI。