Halaman ini menjelaskan cara menyisipkan, memperbarui, dan menghapus data menggunakan alat command line
gcloud.
Mengubah 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 Berpartisi, 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:
- Menyisipkan baris baru ke dalam tabel.
- Memperbarui kolom dalam baris yang ada dalam tabel.
- Menghapus baris dari tabel.
Grup perintah rows mengenali literal untuk semua jenis kolom yang valid.
Menyisipkan baris dalam tabel
Untuk menyisipkan baris baru dalam tabel, Anda harus menyertakan nilai untuk kolom kunci dan kolom wajib diisi lainnya:
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 kunci dan kolom yang ingin Anda perbarui:
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: []
Menentukan stempel waktu commit
Untuk menyisipkan atau memperbarui nilai secara otomatis di 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 di kolom LastUpdated:
gcloud spanner rows update --instance=test-instance --database=example-db \ --table=Singers \ --data=SingerId=1,LastUpdated=2017-01-02T12:34:00.45Z