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_3Im 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