全部产品
Search
文档中心

Tablestore:Kolom kunci utama auto-increment

更新时间:Nov 09, 2025

Jika Anda menetapkan kolom kunci utama yang bukan kolom kunci partisi sebagai kolom auto-increment, Anda tidak perlu menentukan nilai untuk kolom tersebut saat menulis data. Tablestore secara otomatis menghasilkan nilai unik untuk kolom auto-increment yang meningkat secara ketat pada tingkat kolom kunci partisi.

Fitur

Kolom kunci utama auto-increment memiliki fitur berikut:

  • Nilai dalam kolom auto-increment bersifat unik dan meningkat secara ketat pada tingkat kolom kunci partisi, tetapi tidak dijamin berurutan.

  • Tipe data kolom auto-increment adalah bilangan bulat bertanda 64-bit.

  • Kolom auto-increment didefinisikan pada tingkat tabel. Sebuah instans dapat berisi tabel dengan dan tanpa kolom auto-increment.

Catatan

Menggunakan fitur kolom kunci utama auto-increment tidak memengaruhi aturan untuk pembaruan bersyarat. Untuk informasi lebih lanjut, lihat Pembaruan bersyarat.

Catatan penggunaan

  • Setiap tabel data hanya dapat memiliki satu kolom kunci utama auto-increment. Kolom kunci partisi tidak dapat diatur sebagai kolom auto-increment.

  • Anda hanya dapat menentukan kolom auto-increment saat membuat tabel data. Tidak dapat menambahkan kolom auto-increment ke tabel data yang sudah ada.

  • Hanya kolom kunci utama dengan tipe integer yang dapat diatur sebagai kolom auto-increment. Nilai yang dihasilkan sistem untuk kolom auto-increment adalah bilangan bulat bertanda 64-bit.

  • Kolom atribut tidak dapat diatur sebagai kolom auto-increment.

  • Fitur kolom kunci utama auto-increment dan fitur transaksi lokal tidak dapat digunakan secara bersamaan.

  • Saat menulis data ke tabel dengan kolom kunci utama auto-increment, Anda harus mengambil dan mencatat nilai kolom auto-increment untuk pembaruan atau pembacaan data selanjutnya.

Operasi API

Tabel berikut menjelaskan operasi API terkait dengan fitur kolom kunci utama auto-increment.

API

Deskripsi

CreateTable

Saat Anda membuat tabel data, tetapkan kolom kunci utama yang bukan kolom kunci partisi sebagai kolom auto-increment. Jika tidak, Anda tidak dapat menggunakan fitur kolom kunci utama auto-increment.

UpdateTable

Setelah tabel data dibuat, Anda tidak dapat menggunakan operasi UpdateTable untuk menetapkan kolom kunci utama sebagai kolom auto-increment.

PutRow

Saat Anda menulis data, Anda tidak perlu menentukan nilai untuk kolom auto-increment. Tablestore secara otomatis menghasilkan nilai untuk kolom tersebut.

Dengan mengatur ReturnType ke RT_PK, Anda bisa mendapatkan nilai kunci utama lengkap. Nilai kunci utama lengkap dapat digunakan untuk menanyakan data dengan GetRow.

Penting

Untuk memperbarui baris yang ada, jika Anda belum mencatat nilai kolom kunci utama auto-increment, pertama-tama gunakan operasi API GetRange untuk mendapatkan informasi kunci utama dari baris yang akan diperbarui. Kemudian, lakukan pembaruan data.

UpdateRow

BatchWriteRow

GetRow

Saat Anda menggunakan GetRow, Anda memerlukan nilai kunci utama lengkap. Anda bisa mendapatkan nilai kunci utama lengkap dengan mengatur parameter ReturnType di PutRow, UpdateRow, atau BatchWriteRow ke RT_PK.

Penting

Saat Anda menulis data, jika Anda tidak mencatat nilai kolom kunci utama auto-increment, Anda dapat membaca rentang data. Rentang ditentukan oleh kolom kunci utama pertama. Untuk informasi lebih lanjut, lihat Baca rentang data.

BatchGetRow

Cara menggunakan

Gunakan Konsol

  1. Buat tabel data dengan kolom kunci utama auto-increment.

    1. Masuk ke Konsol Tablestore.

    2. Di halaman Overview, klik Instance Management di kolom Actions dari instans.

    3. Di tab Instance Details, di bagian Data Table List, klik Create Data Table.

    4. Di kotak dialog Create Data Table, konfigurasikan Data Table Name dan Table Primary Key. Konfigurasikan parameter lain sesuai kebutuhan.

      Saat mengonfigurasi kunci utama tabel, pilih Auto-increment Column sebagai tipe untuk kolom kunci utama non-partisi.

      Catatan

      Untuk informasi lebih lanjut tentang konfigurasi parameter, lihat Operasi tabel data.

    5. Klik Create.

  2. Tulis data.

    1. Di tab Instance Details, di bagian Data Table List, klik nama tabel data.

    2. Di tab Data Management, klik Insert Data.

    3. Di kotak dialog Insert Data, masukkan nilai kunci utama dan tambahkan kolom atribut sesuai kebutuhan.

      Anda tidak perlu memasukkan nilai untuk kolom auto-increment. Sistem secara otomatis menghasilkan nilai saat data ditulis. Untuk menambahkan beberapa kolom atribut, klik ikon image beberapa kali dan konfigurasikan nama, tipe, dan nilai untuk setiap kolom atribut.

    4. Klik OK.

      Sistem menampilkan data yang berhasil ditulis. Catat kunci utama lengkap dari baris untuk pembaruan atau pembacaan data selanjutnya.

Gunakan antarmuka baris perintah

  1. Buat dan gunakan tabel data dengan kolom kunci utama auto-increment.

    1. Jalankan perintah create untuk membuat tabel data. Untuk informasi lebih lanjut, lihat Buat tabel.

      Contoh berikut membuat tabel data bernama mytable dengan kolom kunci utama auto-increment. Tabel ini memiliki dua kolom kunci utama: uid (tipe string) dan pid (tipe integer). Kolom kunci utama kedua, pid, diatur sebagai kolom auto-increment. Data dalam tabel tidak pernah kedaluwarsa.

      create -t mytable --pk '[{"c":"uid", "t":"string"}, {"c":"pid", "t":"integer", "opt":"auto"}]'
    2. Jalankan perintah use --wc -t mytable untuk menggunakan tabel data.

  2. Jalankan perintah put untuk menulis satu baris data. Untuk informasi lebih lanjut, lihat Sisipkan data baru.

    Catatan

    Setelah menulis data, untuk mengambil informasi kunci utama lengkap, Anda dapat menjalankan perintah scan untuk mengambil data baris tertentu. Untuk informasi lebih lanjut, lihat Pindai data atau Ekspor data.

    Contoh berikut menyisipkan satu baris data ke tabel data. Nilai kolom kunci utama pertama adalah "86". Nilai kolom kunci utama kedua adalah null. Baris tersebut memiliki dua kolom atribut: name (tipe string) dan country (tipe string).

    put --pk '["86", null]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'

Gunakan SDK

Anda dapat menggunakan fitur kolom kunci utama auto-increment dengan Java SDK, Go SDK, Python SDK, Node.js SDK, .NET SDK, dan PHP SDK. Bagian ini menggunakan Java SDK sebagai contoh.

Contoh kode berikut memberikan contoh cara menulis satu baris data ke tabel test_table, serta mendapatkan dan mencetak informasi kunci utama dari baris tersebut:

public static void putRowTest(SyncClient client) {
    // Bangun kunci utama.
    PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
    primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
    // Tetapkan nilai kolom kunci utama auto-increment sebagai placeholder.
    primaryKeyBuilder.addPrimaryKeyColumn("incr", PrimaryKeyValue.AUTO_INCREMENT);
    PrimaryKey primaryKey = primaryKeyBuilder.build();

    // Bangun data baris untuk ditulis.
    RowPutChange rowPutChange = new RowPutChange("test_table", primaryKey);
    rowPutChange.addColumn("col1", ColumnValue.fromString("val1"));
    // Tetapkan tipe pengembalian ke RT_PK untuk mengembalikan informasi kunci utama dari baris yang ditulis.
    rowPutChange.setReturnType(ReturnType.RT_PK);

    // Panggil metode putRow untuk menulis baris data.
    PutRowRequest putRowRequest = new PutRowRequest();
    putRowRequest.setRowChange(rowPutChange);
    PutRowResponse putRowResponse = client.putRow(putRowRequest);

    // Tampilkan Id permintaan dan konsumsi CU baca/tulis.
    System.out.println("RequestId: " + putRowResponse.getRequestId());
    System.out.println("Read CU Cost: " + putRowResponse.getConsumedCapacity().getCapacityUnit().getReadCapacityUnit());
    System.out.println("Write CU Cost: " + putRowResponse.getConsumedCapacity().getCapacityUnit().getWriteCapacityUnit());

    // Dapatkan dan cetak informasi kunci utama yang dikembalikan. Jika tipe pengembalian tidak diatur ke RT_PK, informasi kunci utama tidak dikembalikan.
    Row row = putRowResponse.getRow();
    if(row != null)
        System.out.println(row.getPrimaryKey().toString());
}

Penagihan

Menggunakan fitur kolom kunci utama auto-increment tidak memengaruhi aturan penagihan yang ada. Data kolom kunci utama yang dikembalikan tidak mengonsumsi unit kapasitas baca (CU) tambahan.