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