Halaman ini menjelaskan cara menyisipkan, memperbarui, dan menghapus data menggunakan
alat command line gcloud
.
Memodifikasi data menggunakan DML
Untuk menjalankan pernyataan Bahasa Manipulasi Data (DML), gunakan
perintah gcloud spanner databases execute-sql
. Contoh berikut menambahkan baris baru ke tabel Singers
.
gcloud spanner databases execute-sql example-db --instance=test-instance \ --sql="INSERT Singers (SingerId, FirstName, LastName) VALUES (1, 'Marc', 'Richards')"
Untuk menjalankan pernyataan DML Terpartisi, gunakan
perintah gcloud spanner databases execute-sql
dengan
opsi --enable-partitioned-dml
. Contoh berikut memperbarui baris dalam
tabel Albums
.
gcloud spanner databases execute-sql example-db \ --instance=test-instance --enable-partitioned-dml \ --sql='UPDATE Albums SET MarketingBudget = 0 WHERE MarketingBudget IS NULL'
Untuk referensi DML Spanner, lihat sintaksis Bahasa Manipulasi Data.
Mengubah baris menggunakan grup perintah baris
Gunakan grup perintah gcloud spanner rows
untuk mengubah data dalam database:
- Sisipkan baris baru ke dalam tabel.
- Memperbarui kolom di baris yang ada dalam tabel.
- Menghapus baris dari tabel.
Grup perintah rows
mengenali literal untuk semua jenis kolom yang valid.
Sisipkan baris dalam tabel
Untuk menyisipkan baris baru dalam tabel, Anda harus menyertakan nilai untuk kolom utama dan kolom lain yang diperlukan:
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
Contoh berikut menyisipkan baris baru dalam tabel Singers
:
gcloud spanner rows insert --instance=test-instance --database=example-db \ --table=Singers \ --data=SingerId=1,FirstName='Marc',LastName='Richards'
Memperbarui baris dalam tabel
Untuk memperbarui baris dalam tabel, Anda harus menyertakan nilai untuk kolom utama dan kolom yang ingin diperbarui:
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
Contoh berikut memperbarui baris dalam tabel Singers
:
gcloud spanner rows update --instance=test-instance --database=example-db \ --table=Singers \ --data=SingerId=1,FirstName='Marc',LastName='Richards'
Anda tidak dapat mengubah nilai kunci menggunakan perintah update
. Untuk memperbarui nilai kunci, Anda harus membuat baris baru dan menghapus baris yang ada.
Menghapus baris dari tabel
Untuk menghapus baris, Anda harus menentukan nilai untuk kolom kunci utama:
gcloud spanner rows delete --instance=INSTANCE_ID --database=DATABASE_ID \ --table=TABLE_NAME \ --keys=KEY_VALUE_1,KEY_VALUE_2,KEY_VALUE_3
gcloud spanner rows delete --instance=test-instance --database=example-db \ --table=Singers \ --keys=1
Menentukan nilai ARRAY
Untuk menyisipkan atau memperbarui nilai dalam kolom ARRAY
, masukkan data dalam file YAML dan gunakan opsi --flags-file
.
Misalnya, file YAML ini menentukan array [1,2,3]
untuk kolom Numbers
:
# stats.yaml
--data:
Id: 1
Locked: True
Numbers:
- 1
- 2
- 3
Untuk menyisipkan baris dengan data YAML, gunakan opsi --flags-file
:
gcloud spanner rows insert --instance=test-instance --database=example-db \ --table=Stats \ --flags-file stats.yaml
Untuk array NULL
, jangan sertakan nilai untuk Numbers
dalam file:
# stats.yaml
--data:
Id: 1
Locked: True
Untuk array kosong, tentukan array sebagai []
:
# stats.yaml
--data:
Id: 1
Locked: True
Numbers: []
Tentukan stempel waktu commit
Untuk menyisipkan atau memperbarui nilai secara otomatis dalam
kolom stempel waktu commit, teruskan
spanner.commit_timestamp()
sebagai nilai kolom. Contoh berikut
menulis stempel waktu commit di kolom LastUpdated
saat baris
disisipkan.
gcloud spanner rows insert --instance=test-instance --database=example-db \ --table=Singers \ --data=SingerId=1,LastUpdated='spanner.commit_timestamp()'
Contoh berikut menulis nilai stempel waktu tertentu dalam kolom
LastUpdated
:
gcloud spanner rows update --instance=test-instance --database=example-db \ --table=Singers \ --data=SingerId=1,LastUpdated=2017-01-02T12:34:00.45Z