SQL-Shell-Befehle

In diesem Dokument werden die von Spanner Omni unterstützten SQL-Shell-Befehle zusammengefasst. Spanner Omni und Spanner unterstützen dieselben SQL-Shell-Befehle.

Befehlssyntax Beschreibung
SHOW DATABASES; Datenbanken auflisten.
USE database_name [ROLE role_name]; Datenbank wechseln Die von Ihnen festgelegte Rolle wird für die detaillierte Zugriffssteuerung verwendet.
CREATE DATABASE database_name; Datenbank erstellen
DROP DATABASE database_name; Löschen Sie die Datenbank.
SHOW TABLES [schema]; Tabellen auflisten Wenn Sie kein Schema angeben, verwendet Spanner das Standardschema.
SHOW CREATE TABLE table_name; Tabellenschema anzeigen
SHOW COLUMNS FROM table_name; Spalten einblenden
SHOW INDEX FROM table_name; Indexe anzeigen
CREATE TABLE ...; Tabelle erstellen.
ALTER TABLE ...; Tabellenschema ändern
DROP TABLE ...; Tabelle löschen
TRUNCATE TABLE table_name; Tabelle kürzen Nur Zeilen löschen. Dieser Befehl ist nicht atomar, da er als partitionierte DML-Anweisung ausgeführt wird.
CREATE INDEX ...; Index erstellen
DROP INDEX ...; Index löschen
CREATE ROLE ...; Rolle erstellen Weitere Informationen finden Sie in der IAM-Übersicht für Spanner.
DROP ROLE ...; Rolle löschen
GRANT ...; Einer Rolle eine Berechtigung gewähren
REVOKE ...; Berechtigung für eine Rolle widerrufen
SELECT ...; Abfrage ausführen
{ INSERT|UPDATE|DELETE } ...; Führen Sie eine DML-Anweisung aus.
PARTITIONED { UPDATE|DELETE } ...; Führen Sie eine partitionierte DML-Anweisung aus. Dieser Befehl ist nicht atomar.
EXPLAIN SELECT ...; Einen Abfrageausführungsplan anzeigen Weitere Informationen finden Sie unter Abfrageausführungspläne.
EXPLAIN {INSERT|UPDATE|DELETE} ...; Zeige den DML-Ausführungsplan.
EXPLAIN ANALYZE SELECT ...; Abfrageausführungsplan mit Optimiererstatistiken anzeigen Weitere Informationen finden Sie unter Optimizer-Statistikpakete.
EXPLAIN ANALYZE {INSERT|UPDATE|DELETE} ...; Zeigen Sie den DML-Ausführungsplan mit Optimiererstatistiken an. Weitere Informationen finden Sie unter Optimizer-Statistikpakete.
DESCRIBE SELECT ...; Form des Abfrageergebnisses anzeigen
DESCRIBE {INSERT|UPDATE|DELETE} ... THEN RETURN ...; Form des DML-Ergebnisses anzeigen.
ANALYZE; Starten Sie die Erstellung eines neuen Statistikpakets für den Query-Optimierer.
START BATCH DDL; Starten Sie einen DDL-Batch.
RUN BATCH; Batchbefehle ausführen
ABORT BATCH; Batchbefehle abbrechen
BEGIN [RW] [ISOLATION LEVEL {SERIALIZABLE|REPEATABLE READ}] [PRIORITY {HIGH|MEDIUM|LOW}] [TAG tag_name]; Starten Sie eine Lese-Schreib-Transaktion. Weitere Informationen finden Sie unter Transaktionsbefehle.
COMMIT; Führen Sie ein Commit einer Lese-/Schreibtransaktion durch.
ROLLBACK; Rollback (Rückgängigmachen) einer Lese-/Schreibtransaktion
BEGIN RO [{seconds|RFC 3339-formatted_time}] [PRIORITY {HIGH|MEDIUM|LOW}] [TAG tag_name]; Starten Sie eine schreibgeschützte Transaktion. seconds und RFC 3339-formatted_time werden für veraltete Lesevorgänge verwendet. Weitere Informationen finden Sie unter Transaktionsbefehle.
CLOSE; Schreibgeschützte Transaktion beenden.
EXIT; Schließen Sie Spanner Omni.

BATCH-Befehle

Mit Spanner Omni können Sie DDL-Vorgänge im Batchmodus ausführen. Dabei werden mehrere DDL-Anweisungen in einem einzigen Vorgang gruppiert, was Schemaänderungen beschleunigt. Der Spanner Omni unterstützt die folgenden BATCH-Befehle:

START BATCH DDL;

Mit diesem Befehl wird ein DDL-Batch initiiert. Alle nachfolgenden DDL-Anweisungen (z. B. CREATE TABLE, ALTER TABLE, DROP INDEX), die Sie in dieser Sitzung ausführen, bleiben im Status „Ausstehend“ und werden nicht sofort auf die Datenbank angewendet.

RUN BATCH;

Nachdem Sie START BATCH DDL und die nachfolgenden DDL-Anweisungen ausgeführt haben, verwenden Sie den Befehl RUN BATCH, um alle ausstehenden DDL-Vorgänge als einzelne Anfrage an Spanner zu senden. Mit diesem Befehl wird der Overhead für einzelne DDL-Anweisungen reduziert, was zu schnelleren Schemaänderungen führt.

ABORT BATCH;

Wenn Sie die ausstehenden DDL-Änderungen nicht anwenden möchten, verwenden Sie den Befehl ABORT BATCH. Mit diesem Befehl werden alle DDL-Anweisungen verworfen, die seit dem Ausführen des Befehls START BATCH DDL erfasst wurden. Dadurch wird der Batch effektiv zurückgesetzt und das Datenbankschema bleibt unverändert.

Transaktionsbefehle

Spanner Omni unterstützt die folgenden SQL-Befehle für Transaktionen:

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

Starten Sie eine Transaktion. Sie können folgende Optionen konfigurieren:

  • Transaktionstyp: Starten Sie eine Lese-/Schreibtransaktion (kein Parameter erforderlich) oder eine schreibgeschützte Transaktion (RO).
  • Zeit für veraltete Lesevorgänge: Legen Sie die Zeit in Sekunden oder im RFC 3339-Format fest, um Daten ab einem bestimmten Zeitstempel zu lesen.
  • Isolationsebene: Legen Sie die Isolationsebene für Lese-/Schreibtransaktionen fest. Standardmäßig wird die serialisierbare Isolation verwendet. Weitere Informationen finden Sie unter Isolationsebenen – Übersicht.
  • Priorität: Legen Sie die Anfragepriorität für die Transaktion fest. Die Priorität „Mittel“ ist standardmäßig festgelegt.
  • Tag: Legen Sie Transaktions-Tags mit dem Befehl BEGIN fest.

    • Fügen Sie in einer Lese-/Schreibtransaktion mit BEGIN TAG tag ein Tag hinzu. Spanner Omni fügt das Tag als Transaktions-Tag hinzu. Das Tag wird auch als Anfrage-Tag innerhalb der Transaktion verwendet.
    • Fügen Sie in einer schreibgeschützten Transaktion ein Tag mit BEGIN RO TAG tag hinzu. Da schreibgeschützte Transaktionen keine Transaktions-Tags unterstützen, fügt Spanner das Tag als Anfrage-Tag hinzu.

COMMIT;

Alle Änderungen in einer Lese-/Schreibtransaktion abschließen und dauerhaft machen.

CLOSE;

Schließen Sie eine schreibgeschützte Transaktion.

ROLLBACK;

Rollback (Rückgängigmachen) einer Lese-/Schreibtransaktion