All Products
Search
Document Center

Tablestore:Konfigurasikan kolom kunci utama auto-increment

Last Updated:Apr 30, 2026

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:

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.

Catatan

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));
        }
    });
}