Gunakan Tablestore SDK untuk Node.js untuk menambahkan kolom kunci utama auto-increment ke tabel data, menulis baris ke kolom tersebut, dan mengambil nilai yang dihasilkan.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Menginisialisasi client. Untuk informasi selengkapnya, lihat Inisialisasi client Tablestore.
Pahami perilaku kolom auto-increment
Nilai kolom kunci utama auto-increment bersifat unik dan meningkat secara monotonik, tetapi tidak selalu berurutan dalam satu partisi yang memiliki nilai kunci partisi yang sama.
Buat tabel data dengan kolom kunci utama auto-increment
Saat membuat tabel data, tetapkan salah satu kolom kunci utama non-partisi sebagai auto-increment dengan mengatur option-nya ke AUTO_INCREMENT. Kolom tersebut harus menggunakan tipe data INTEGER. Satu tabel hanya dapat memiliki paling banyak satu kolom kunci utama auto-increment, dan Anda tidak dapat menambahkannya ke tabel yang sudah ada.
Nilai kolom kunci utama auto-increment merupakan bilangan bulat bertanda 64-bit. Hanya kolom non-partisi yang mendukung opsi AUTO_INCREMENT.
Contoh
Contoh berikut membuat test_table dengan dua kolom kunci utama: id (kunci partisi, STRING) dan incr (auto-increment, INTEGER).
function createTableSample() {
var createParams = {
tableMeta: {
tableName: 'test_table',
primaryKey: [
{
name: 'id',
type: 'STRING' // Kunci partisi — Anda menyediakan nilai ini pada setiap operasi tulis
},
{
name: 'incr',
type: 'INTEGER',
option: 'AUTO_INCREMENT' // Tablestore menghasilkan nilai ini secara otomatis
},
]
},
tableOptions: {
timeToLive: -1, // -1 berarti data tidak pernah kedaluwarsa
maxVersions: 1
},
reservedThroughput: {
capacityUnit: {
read: 0,
write: 0
}
},
};
client.createTable(createParams, function (err, data) {
if (err) {
console.error('error:', err);
return;
}
console.log('success:', data);
});
}
Tulis data
Saat menulis baris, atur nilai kolom auto-increment ke TableStore.PK_AUTO_INCR—placeholder yang memberi tahu Tablestore untuk menghasilkan nilainya. Untuk mengambil nilai yang dihasilkan (misalnya, untuk digunakan dalam operasi baca atau pembaruan berikutnya), atur returnType ke TableStore.ReturnType.Primarykey dalam returnContent.
Contoh
Contoh berikut menulis satu baris ke test_table dan mencetak kunci utama yang dihasilkan.
function putRowSample() {
var putParams = {
tableName: 'test_table',
condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
primaryKey: [
{ id: 'row1' },
// Gunakan PK_AUTO_INCR sebagai placeholder — Tablestore menggantinya dengan nilai yang dihasilkan
{ incr: TableStore.PK_AUTO_INCR }
],
attributeColumns: [
{ 'col1': 'val1' }
],
// Kembalikan kunci utama lengkap agar Anda dapat menggunakan nilai incr yang dihasilkan dalam kueri berikutnya
returnContent: { returnType: TableStore.ReturnType.Primarykey }
};
client.putRow(putParams, function (err, data) {
if (err) {
console.error('error:', err);
return;
}
// Metadata permintaan dan unit kapasitas yang dikonsumsi
console.log("RequestId: ", data.RequestId);
console.log("Read CU Cost: ", data.consumed.capacityUnit.read);
console.log("Write CU Cost: ", data.consumed.capacityUnit.write);
// Cetak kunci utama yang dihasilkan, termasuk nilai auto-increment
// Ini hanya dikembalikan jika returnType diatur ke Primarykey
if (data.row.primaryKey) {
console.log(JSON.stringify(data.row.primaryKey));
}
});
}