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.
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.
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) |
|
Nama kolom kunci utama auto-increment. |
|
type (wajib) |
|
Tipe data kolom kunci utama auto-increment. Atur parameter ini ke |
|
option (wajib) |
|
Konfigurasi kolom kunci utama. Atur parameter ini ke |
Parameter RowPutChange
Parameter berikut mengatur penulisan data ke kolom kunci utama auto-increment dan data yang dikembalikan.
|
Nama |
Tipe |
Deskripsi |
|
primaryKey (wajib) |
|
Kunci utama baris tersebut. Nama kolom, urutan, dan tipe harus sesuai dengan skema tabel. Atur nilai kolom auto-increment ke |
|
returnType (opsional) |
|
Tipe pengembalian. Nilai default-nya adalah |
Nilai pengembalian
Bidang PutRowResponse berikut berisi nilai auto-increment yang dihasilkan.
|
Bidang |
Tipe |
Deskripsi |
|
|
|
Panggil |