全部产品
Search
文档中心

Tablestore:Kolom kunci utama auto-increment

更新时间:Oct 28, 2025

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

Catatan penggunaan

Nilai auto-increment yang dihasilkan untuk kolom auto-increment bersifat unik dan selalu bertambah secara ketat pada tingkat kunci partisi. Namun, tidak dijamin bahwa nilainya berurutan.

Prasyarat

Inisialisasi Klien Tablestore.

Konfigurasikan kolom kunci utama auto-increment

Anda dapat mengonfigurasi 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 bertipe integer yang dapat dikonfigurasi 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

Contoh kode berikut membuat tabel data bernama test_table. Kunci utama tabel mencakup kunci partisi id dan kolom auto-increment incr.

public static void CreateSample(OTSClient client)
{
    try
    {
        PrimaryKeySchema primaryKeySchema = new PrimaryKeySchema
        {
            { "id", ColumnValueType.String },
            { "incr", ColumnValueType.Integer, PrimaryKeyOption.AUTO_INCREMENT}
        };
        TableMeta tableMeta = new TableMeta("test_table", primaryKeySchema);
        CapacityUnit reservedThroughput = new CapacityUnit(0, 0);

        CreateTableRequest request = new CreateTableRequest(tableMeta, reservedThroughput);
        client.CreateTable(request);
        Console.WriteLine("Pembuatan tabel berhasil.");
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Pembuatan tabel gagal, pengecualian:{ex.Message}");
    }
}

Tulis data

Saat menulis data ke kolom auto-increment, atur nilai kolom sebagai placeholder. Untuk mengambil nilai auto-increment yang dihasilkan untuk kueri dan pembaruan, atur tipe pengembalian RowPutChange ke ReturnType.RT_PK.

Contoh kode

Contoh kode berikut menulis satu baris data ke tabel test_table, serta mendapatkan dan mencetak informasi kunci utama dari baris data yang ditulis.

public static void PutRowSample(OTSClient client)
{
    try
    {
        // Konstruksi kunci utama
        PrimaryKey primaryKey = new PrimaryKey
        {
            { "id", new ColumnValue("row1") },
            { "incr",  ColumnValue.AUTO_INCREMENT }
        };

        // Konstruksi data baris untuk ditulis
        AttributeColumns attribute = new AttributeColumns
        {
            { "col1", new ColumnValue("val1") }
        };
        PutRowRequest request = new PutRowRequest("test_table", new Condition(RowExistenceExpectation.IGNORE), primaryKey, attribute);
        // Atur tipe pengembalian ke ReturnType.RT_PK untuk mengembalikan informasi kunci utama dari baris data yang ditulis
        request.RowPutChange.ReturnType = ReturnType.RT_PK;

        // Panggil metode PutRow untuk menulis data baris
        PutRowResponse response = client.PutRow(request);

        // RequestId dan CU yang dikonsumsi
        Console.WriteLine("RequestId: " + response.RequestID);
        Console.WriteLine("Biaya CU Baca: " + response.ConsumedCapacityUnit.Read);
        Console.WriteLine("Biaya CU Tulis: " + response.ConsumedCapacityUnit.Write);

        // Dapatkan dan cetak informasi kunci utama yang dikembalikan. Jika tipe pengembalian tidak diatur ke ReturnType.RT_PK, informasi kunci utama tidak dikembalikan secara default
        Console.WriteLine(response.Row.PrimaryKey.ToString());
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Penulisan Baris gagal, pengecualian:{ex.Message}");
    }
}