Menyisipkan, memperbarui, dan menghapus data menggunakan Google Cloud CLI

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
Contoh berikut menghapus baris dari tabel `Penyanyi`:
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