全部产品
Search
文档中心

Tablestore:Konfigurasikan kolom kunci utama auto-increment

更新时间:Jul 31, 2025

Topik ini menjelaskan cara mengonfigurasi kolom kunci utama auto-increment untuk tabel data menggunakan Tablestore SDK for PHP, serta cara menulis data ke kolom auto-increment dan mendapatkan nilai yang dihasilkan.

Catatan penggunaan

  • Tablestore SDK for PHP V4.0.0 atau versi lebih tinggi mendukung kolom kunci utama auto-increment.

  • Nilai-nilai auto-increment dari kolom auto-increment bersifat unik dan bertambah pada tingkat kunci partisi, tetapi tidak dijamin berurutan.

Prasyarat

Inisialisasi instance OTSClient.

Konfigurasikan kolom kunci utama auto-increment

Anda dapat menetapkan kolom kunci utama non-partisi sebagai kolom auto-increment saat membuat tabel data. Untuk tabel data yang sudah ada, Anda tidak dapat mengonfigurasi kolom auto-increment.

Catatan

Hanya kolom kunci utama non-partisi dengan tipe INTEGER yang dapat diatur sebagai kolom auto-increment. Sebuah tabel data hanya dapat memiliki satu kolom auto-increment. Nilai yang dihasilkan untuk kolom auto-increment adalah bilangan bulat panjang bertanda 64-bit.

Contoh kode

Berikut ini adalah contoh kode yang membuat tabel data bernama test_table. Kunci utama tabel mencakup kunci partisi id dan kolom auto-increment incr.

function createTable($client) 
{
    $request = [
        'table_meta' => [
            'table_name' => 'test_table',
            'primary_key_schema' => [
                ['id', PrimaryKeyTypeConst::CONST_STRING],
                ['incr', PrimaryKeyTypeConst::CONST_INTEGER, PrimaryKeyOptionConst::CONST_PK_AUTO_INCR]
            ]
        ],
        'reserved_throughput' => [
            'capacity_unit' => [
                'read' => 0,
                'write' => 0
            ]
        ],
        'table_options' => [
            'time_to_live' => -1,
            'max_versions' => 1,
            'deviation_cell_version_in_sec' => 86400
        ]
    ];
    $client->createTable($request);
}

Tulis data

Saat menulis data ke kolom auto-increment, Anda hanya perlu menetapkan nilainya sebagai placeholder. Untuk mendapatkan nilai auto-increment yang dihasilkan untuk kueri dan pembaruan, Anda harus menetapkan tipe pengembalian putRow ke CONST_PK.

Contoh kode

Berikut ini adalah contoh kode yang menulis satu baris data ke tabel test_table, serta memperoleh dan mencetak informasi kunci utama dari baris data yang ditulis.

function putRow($client)
{
    $row = [
        'table_name' => 'test_table',
        'primary_key' => [
            ['id', 'row1'],
            // Konfigurasikan kolom auto-increment.
            ['incr', null, PrimaryKeyTypeConst::CONST_PK_AUTO_INCR]
        ],
        'attribute_columns' => [
            ['col1', 'val1']
        ],
        'return_content' => [
            'return_type' => ReturnTypeConst::CONST_PK
        ]
    ];
    $result = $client->putRow($row);
    // Konsumsi CU untuk operasi baca dan tulis.
    echo "Biaya CU Baca: " . $result['consumed']['capacity_unit']['read'] . "\n";
    echo "Biaya CU Tulis: " . $result['consumed']['capacity_unit']['write'] . "\n";

    // Dapatkan dan cetak informasi kunci utama yang dikembalikan. Jika tipe pengembalian tidak disetel ke CONST_PK, informasi kunci utama tidak akan dikembalikan secara default.
    if(!empty($result['primary_key'])){
        echo "Kunci Utama: ";
        foreach ($result['primary_key'] as $primaryKey) {
            echo "(" . implode(", ", $primaryKey) . ")";
        }
    }
}