Halaman ini menjelaskan cara menyisipkan, memperbarui, dan menghapus data menggunakan
alat command line gcloud
.
Mengubah data menggunakan DML
Untuk mengeksekusi 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 mengeksekusi 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 di 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 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 di 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 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 di 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 di 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