All Products
Search
Document Center

Tablestore:Gunakan kolom kunci utama auto-increment

Last Updated:Jul 23, 2026

Gunakan Tablestore SDK for Java untuk mengonfigurasi kolom kunci utama non-partisi sebagai auto-increment saat membuat tabel, serta mengambil nilai yang dihasilkan saat menulis data.

Prasyarat

  • Instal Tablestore SDK for Java dan inisialisasi klien.

  • Gunakan Tablestore SDK for Java versi 4.2.0 atau yang lebih baru.

Deskripsi fungsi

Penggunaan kolom kunci utama auto-increment mencakup tiga langkah: mengonfigurasi kolom, menggunakan placeholder saat menulis data, dan mengambil nilai yang dihasilkan.

Catatan

Kolom kunci utama auto-increment harus berupa kunci non-partisi bertipe INTEGER dan hanya dapat dikonfigurasi saat pembuatan tabel. Setiap tabel hanya boleh memiliki satu kolom kunci utama auto-increment. Tablestore menghasilkan bilangan bulat bertanda 64-bit untuk kolom tersebut.

Nilai yang dihasilkan bersifat unik dan meningkat secara ketat dalam partisi kunci yang sama, tetapi mungkin tidak berurutan.

Konfigurasikan kolom kunci utama auto-increment

Atur parameter option pada kolom kunci utama non-partisi menjadi PrimaryKeyOption.AUTO_INCREMENT saat membuat tabel.

Contoh berikut membuat tabel example_table dengan id sebagai kunci partisi dan incr sebagai kolom kunci utama auto-increment.

Catatan

Tunggu hingga tabel selesai dimuat sebelum menulis data.

String tableName = "example_table";

TableMeta tableMeta = new TableMeta(tableName);
tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("id", PrimaryKeyType.STRING));
tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema(
        "incr", PrimaryKeyType.INTEGER, PrimaryKeyOption.AUTO_INCREMENT));

TableOptions tableOptions = new TableOptions(-1, 1);
CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
client.createTable(request);

Tulis data dan ambil nilai yang dihasilkan

Atur nilai kolom auto-increment menjadi PrimaryKeyValue.AUTO_INCREMENT saat menulis data. Untuk mengambil nilai yang dihasilkan, atur tipe pengembalian menjadi ReturnType.RT_PK. Jika tidak, respons tidak akan menyertakan informasi kunci utama.

Contoh berikut menulis satu baris ke example_table dan mengambil nilai yang dihasilkan dari kolom incr melalui respons.

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("partition-a"));
primaryKeyBuilder.addPrimaryKeyColumn("incr", PrimaryKeyValue.AUTO_INCREMENT);
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowPutChange rowPutChange = new RowPutChange("example_table", primaryKey);
rowPutChange.addColumn("payload", ColumnValue.fromString("example-value"));
rowPutChange.setReturnType(ReturnType.RT_PK);

PutRowResponse response = client.putRow(new PutRowRequest(rowPutChange));
long generatedValue = response.getRow().getPrimaryKey()
        .getPrimaryKeyColumn("incr").getValue().asLong();
System.out.println("Generated value: " + generatedValue);

Parameter

Parameter PrimaryKeySchema

Parameter berikut mendefinisikan kolom kunci utama auto-increment.

Nama

Tipe

Deskripsi

name (wajib)

String

Nama kolom kunci utama auto-increment.

type (wajib)

PrimaryKeyType

Tipe data kolom kunci utama auto-increment. Atur parameter ini ke INTEGER.

option (wajib)

PrimaryKeyOption

Konfigurasi kolom kunci utama. Atur parameter ini ke AUTO_INCREMENT.

Parameter RowPutChange

Parameter berikut mengatur penulisan data ke kolom kunci utama auto-increment dan data yang dikembalikan.

Nama

Tipe

Deskripsi

primaryKey (wajib)

PrimaryKey

Kunci utama baris tersebut. Nama kolom, urutan, dan tipe harus sesuai dengan skema tabel. Atur nilai kolom auto-increment ke PrimaryKeyValue.AUTO_INCREMENT.

returnType (opsional)

ReturnType

Tipe pengembalian. Nilai default-nya adalah RT_NONE, yang tidak mengembalikan informasi kunci utama. Atur parameter ini ke RT_PK untuk mengembalikan seluruh kunci utama, termasuk nilai yang dihasilkan.

Nilai pengembalian

Bidang PutRowResponse berikut berisi nilai auto-increment yang dihasilkan.

Bidang

Tipe

Deskripsi

row

Row

Panggil getRow() untuk memperoleh kunci utama dari baris yang ditulis. Bidang ini hanya dikembalikan jika returnType diatur ke RT_PK dan berisi nilai auto-increment yang dihasilkan.