Daten mit dem gcloud-Befehlszeilentool einfügen, aktualisieren und löschen

Auf dieser Seite wird beschrieben, wie Sie Daten mit dem gcloud-Befehlszeilentool einfügen, aktualisieren und löschen.

Daten mit DML ändern

Zum Ausführen von DML-Anweisungen können Sie den Befehl gcloud spanner databases execute-sql verwenden. Im folgenden Beispiel wird eine neue Zeile zur Tabelle Singers hinzugefügt.

gcloud spanner databases execute-sql example-db --instance=test-instance \
    --sql="INSERT Singers (SingerId, FirstName, LastName) VALUES (1, 'Marc', 'Richards')"

Zum Ausführen einer partitionierten DML-Anweisung verwenden Sie den Befehl gcloud spanner databases execute-sql mit der Option --enable-partitioned-dml. Im folgenden Beispiel werden Zeilen in der Tabelle Albums aktualisiert.

gcloud spanner databases execute-sql example-db \
    --instance=test-instance --enable-partitioned-dml \
    --sql='UPDATE Albums SET MarketingBudget = 0 WHERE MarketingBudget IS NULL'

Die DML-Referenz für Cloud Spanner finden Sie unter Data Manipulation Language-Syntax.

Zeilen mit der Zeilenbefehlsgruppe ändern

Verwenden Sie die Befehlsgruppe gcloud spanner rows, um Daten in einer Datenbank zu ändern:

  • Neue Zeilen in eine Tabelle einfügen
  • Spalten in vorhandenen Zeilen in einer Tabelle aktualisieren
  • Zeilen aus einer Tabelle löschen

Die Befehlsgruppe rows erkennt Literale für alle gültigen Spaltentypen.

Zeilen in eine Tabelle einfügen

Wenn Sie eine neue Zeile in eine Tabelle einfügen möchten, müssen Sie für die Schlüsselspalten und alle anderen erforderlichen Spalten Werte angeben:

gcloud spanner rows insert --instance=INSTANCE_ID --database=DATABASE_ID \
    --table=TABLE_NAME \
    --data=COL_NAME_1=COL_VALUE_1,COL_NAME_2=COL_VALUE_2,COL_NAME_3=COL_VALUE_3,...,COL_NAME_N=COL_VALUE_N

Im folgenden Beispiel wird eine neue Zeile in die Tabelle Singers eingefügt:

gcloud spanner rows insert --instance=test-instance --database=example-db \
    --table=Singers \
    --data=SingerId=1,FirstName='Marc',LastName='Richards'

Zeilen in einer Tabelle aktualisieren

Wenn Sie eine Zeile in einer Tabelle aktualisieren möchten, müssen Sie für die Schlüsselspalten und die zu aktualisierenden Spalten Werte angeben:

gcloud spanner rows update --instance=INSTANCE_ID --database=DATABASE_ID \
    --table=TABLE_NAME \
    --data=COL_NAME_1=COL_VALUE_1,COL_NAME_2=COL_VALUE_2,COL_NAME_3=COL_VALUE_3,...,COL_NAME_N=COL_VALUE_N

Im folgenden Beispiel wird eine Zeile in der Tabelle Singers aktualisiert:

gcloud spanner rows update --instance=test-instance --database=example-db \
    --table=Singers \
    --data=SingerId=1,FirstName='Marc',LastName='Richards'

Sie können die Schlüsselwerte nicht mit dem Befehl update ändern. Wenn Sie einen Schlüsselwert aktualisieren möchten, müssen Sie eine neue Zeile erstellen und die vorhandene Zeile löschen.

Zeilen aus einer Tabelle löschen

Wenn Sie eine Zeile löschen möchten, müssen Sie die Werte für die Primärschlüsselspalten angeben:

gcloud spanner rows delete --instance=INSTANCE_ID --database=DATABASE_ID  \
    --table=TABLE_NAME \
    --keys=KEY_VALUE_1,KEY_VALUE_2,KEY_VALUE_3
Im folgenden Beispiel wird eine Zeile aus der Tabelle "Singers" gelöscht:
gcloud spanner rows delete --instance=test-instance --database=example-db \
    --table=Singers \
    --keys=1

ARRAY-Werte angeben

Fügen Sie die Daten in eine YAML-Datei ein und verwenden Sie die Option --flags-file, um Werte in eine ARRAY-Spalte einzufügen oder zu aktualisieren.

Diese YAML-Datei gibt beispielsweise das Array [1,2,3] für die Spalte Numbers an:

# stats.yaml
--data:
    Id: 1
    Locked: True
    Numbers:
        - 1
        - 2
        - 3

Mit der Option --flags-file können Sie eine Zeile mit den YAML-Daten einzufügen:

gcloud spanner rows insert --instance=test-instance --database=example-db \
     --table=Stats \
     --flags-file stats.yaml

Fügen Sie für ein NULL-Array keinen Wert für Numbers in die Datei ein:

# stats.yaml
--data:
    Id: 1
    Locked: True

Definieren Sie für ein leeres Array das Array als []:

# stats.yaml
--data:
    Id: 1
    Locked: True
    Numbers: []

Commit-Zeitstempel angeben

Wenn Sie einen Wert automatisch in eine Commit-Zeitstempelspalte einfügen oder aktualisieren möchten, übergeben Sie spanner.commit_timestamp() als Wert der Spalte. Im folgenden Beispiel wird der Commit-Zeitstempel beim Einfügen der Zeile in die Spalte LastUpdated geschrieben.

gcloud spanner rows insert --instance=test-instance --database=example-db \
    --table=Singers \
    --data=SingerId=1,LastUpdated='spanner.commit_timestamp()'

Im folgenden Beispiel wird ein bestimmter Zeitstempelwert in die Spalte LastUpdated geschrieben:

gcloud spanner rows update --instance=test-instance --database=example-db \
    --table=Singers \
    --data=SingerId=1,LastUpdated=2017-01-02T12:34:00.45Z