Comandos da CLI do Spanner

Esta página resume os comandos compatíveis com a CLI do Spanner.

Sintaxe de comando Descrição
SHOW DATABASES; Lista bancos de dados
USE database_name [ROLE role_name]; Mude o banco de dados. O papel definido é usado para controle de acesso refinado.
CREATE DATABASE database_name; Crie o banco de dados.
DROP DATABASE database_name; Excluir banco de dados.
SHOW TABLES [schema]; Listar tabelas. Se você não fornecer um esquema, o Spanner usará o esquema padrão.
SHOW CREATE TABLE table_name; Mostrar esquema da tabela.
SHOW COLUMNS FROM table_name; Mostrar colunas.
SHOW INDEX FROM table_name; Mostrar índices.
CREATE TABLE ...; "Criar tabela".
ALTER TABLE ...; Mude o esquema da tabela.
DROP TABLE ...; Excluir tabela.
TRUNCATE TABLE table_name; Truncar tabela. Exclua apenas as linhas. Esse comando não é atômico porque é executado como uma instrução DML particionada.
CREATE INDEX ...; Crie o índice.
DROP INDEX ...; Exclui um índice.
CREATE ROLE ...; Criar papel. Para mais informações, consulte a visão geral do IAM do Spanner.
DROP ROLE ...; Excluir função.
GRANT ...; Conceda permissão a uma função.
REVOKE ...; Revogar uma permissão de um papel.
SELECT ...; executar uma consulta.
{ INSERT|UPDATE|DELETE } ...; Executa uma instrução DML.
PARTITIONED { UPDATE|DELETE } ...; Executa uma instrução DML particionada. Esse comando não é atômico.
EXPLAIN SELECT ...; Mostra um plano de execução de consulta. Para mais informações, consulte Planos de execução de consulta.
EXPLAIN {INSERT|UPDATE|DELETE} ...; Mostre o plano de execução de DML.
EXPLAIN ANALYZE SELECT ...; Mostra o plano de execução da consulta com estatísticas do otimizador. Para mais informações, consulte Pacotes de estatísticas do otimizador.
EXPLAIN ANALYZE {INSERT|UPDATE|DELETE} ...; Mostra o plano de execução de DML com estatísticas do otimizador. Para mais informações, consulte Pacotes de estatísticas do otimizador.
DESCRIBE SELECT ...; Mostrar a forma do resultado da consulta.
DESCRIBE {INSERT|UPDATE|DELETE} ... THEN RETURN ...; Mostrar a forma do resultado da DML.
ANALYZE; Inicia a criação de um pacote de estatísticas do otimizador de consultas.
START BATCH DDL; Inicie um lote de DDL.
RUN BATCH; Executar comandos em lote.
ABORT BATCH; Interrompe comandos em lote.
BEGIN [RW] [ISOLATION LEVEL {SERIALIZABLE|REPEATABLE READ}] [PRIORITY {HIGH|MEDIUM|LOW}] [TAG tag_name]; Inicie uma transação de leitura/gravação. Para mais informações, consulte Comandos de transação.
COMMIT; Confirme uma transação de leitura/gravação.
ROLLBACK; Reverter (desfazer) uma transação de leitura/gravação.
BEGIN RO [{seconds|RFC 3339-formatted_time}] [PRIORITY {HIGH|MEDIUM|LOW}] [TAG tag_name]; Inicie uma transação somente leitura. seconds e RFC 3339-formatted_time são usados para leituras desatualizadas. Para mais informações, consulte Comandos de transação.
CLOSE; Encerra uma transação somente leitura.
EXIT; Saia da CLI do Spanner.

BATCH commands

A CLI do Spanner permite realizar operações DDL no modo de lote, que agrupa várias instruções DDL em uma única operação e acelera as mudanças de esquema. A CLI do Spanner é compatível com os seguintes comandos BATCH:

START BATCH DDL;

Esse comando inicia um lote de DDL. Todas as instruções DDL subsequentes (por exemplo, CREATE TABLE, ALTER TABLE, DROP INDEX) executadas nessa sessão permanecem em um estado pendente e não são aplicadas ao banco de dados imediatamente.

RUN BATCH;

Depois de executar START BATCH DDL e as instruções DDL subsequentes, use o comando RUN BATCH para enviar todas as operações DDL pendentes como uma única solicitação ao Spanner. Esse comando reduz a sobrecarga associada a instruções DDL individuais, resultando em modificações de esquema mais rápidas.

ABORT BATCH;

Se você decidir não aplicar as mudanças pendentes de DDL, use o comando ABORT BATCH. Esse comando descarta todas as instruções DDL coletadas desde que você emitiu o comando START BATCH DDL, revertendo o lote e deixando o esquema do banco de dados inalterado.

Comandos de transação

A CLI do Spanner é compatível com os seguintes comandos SQL de transação:

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

Inicie uma transação. É possível configurar estas opções:

  • Tipo de transação: inicie uma transação de leitura/gravação (sem parâmetro necessário) ou somente leitura (RO).
  • Tempo de leitura desatualizada: defina o tempo, em segundos ou no formato RFC 3339, para ler dados de um carimbo de data/hora específico.
  • Nível de isolamento: defina o nível de isolamento para transações de leitura e gravação. Por padrão, o isolamento serializável é usado. Para mais informações, consulte Visão geral dos níveis de isolamento.
  • Prioridade: defina a prioridade da solicitação para a transação. A prioridade média é definida por padrão.
  • Tag: defina tags de transação usando o comando BEGIN.

    • Em uma transação de leitura/gravação, adicione uma tag com BEGIN TAG tag. A CLI do Spanner adiciona a tag como uma tag de transação. A tag também é usada como uma tag de solicitação na transação.
    • Em uma transação somente leitura, adicione uma tag com BEGIN RO TAG tag. Como as transações somente leitura não são compatíveis com tags de transação, o Spanner adiciona a tag como uma tag de solicitação.

COMMIT;

Finalize e torne permanentes todas as mudanças em uma transação de leitura/gravação.

CLOSE;

Encerra uma transação somente leitura.

ROLLBACK;

Reverter (desfazer) uma transação de leitura/gravação.

A seguir