Tablestore SDK for Java kullanarak bir tablo oluştururken bölümleme olmayan bir birincil anahtar sütununu otomatik artan olarak yapılandırın ve veri yazarken oluşturulan değeri alın.
Ön koşullar
Tablestore SDK for Java öğesini yükleyin ve istemciyi başlatın. Otomatik artan birincil anahtar sütunları için 4.2.0 veya üzeri bir sürüm gerekir. En son sürümü kullanmanızı öneririz.
İşlev açıklaması
Otomatik artan birincil anahtar sütunlarının kullanımı üç adımdan oluşur: sütunu yapılandırma, veri yazarken yer tutucu kullanma ve oluşturulan değeri alma.
Otomatik artan birincil anahtar sütunu, INTEGER türünde bir bölümleme anahtarı olmayan sütun olmalı ve tablo oluşturulurken yapılandırılmalıdır. Her tablo yalnızca bir otomatik artan birincil anahtar sütunu içerebilir. Tablestore, bu sütun için 64 bitlik işaretli tamsayılar oluşturur.
Oluşturulan değerler benzersizdir ve aynı bölümleme anahtarı içinde kesinlikle artar ancak ardışık olmak zorunda değildir.
Otomatik artan birincil anahtar sütunu yapılandırma
Tabloyu oluştururken bölümleme olmayan birincil anahtar sütununun option parametresini PrimaryKeyOption.AUTO_INCREMENT olarak ayarlayın.
Aşağıdaki örnek, example_table tablosunu oluşturur. Tablo, bölümleme anahtarı olarak id ve otomatik artan birincil anahtar sütunu olarak incr kullanır.
Veri yazmadan önce tablonun yüklenmesini bekleyin.
String tableName = "example_table";
TableMeta tableMeta = new TableMeta(tableName);
tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("id", PrimaryKeyType.STRING));
tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema(
"incr", PrimaryKeyType.INTEGER, PrimaryKeyOption.AUTO_INCREMENT));
TableOptions tableOptions = new TableOptions(-1, 1);
CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
client.createTable(request);
Veri yazma ve oluşturulan değeri alma
Veri yazarken otomatik artan sütun değerini PrimaryKeyValue.AUTO_INCREMENT olarak ayarlayın. Oluşturulan değeri almak için dönüş türünü ReturnType.RT_PK olarak belirleyin. Aksi takdirde yanıt birincil anahtar bilgilerini içermez.
Aşağıdaki örnek, example_table tablosuna bir satır yazar ve yanıtta incr sütunu için oluşturulan değeri alır.
PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("partition-a"));
primaryKeyBuilder.addPrimaryKeyColumn("incr", PrimaryKeyValue.AUTO_INCREMENT);
PrimaryKey primaryKey = primaryKeyBuilder.build();
RowPutChange rowPutChange = new RowPutChange("example_table", primaryKey);
rowPutChange.addColumn("payload", ColumnValue.fromString("example-value"));
rowPutChange.setReturnType(ReturnType.RT_PK);
PutRowResponse response = client.putRow(new PutRowRequest(rowPutChange));
long generatedValue = response.getRow().getPrimaryKey()
.getPrimaryKeyColumn("incr").getValue().asLong();
System.out.println("Generated value: " + generatedValue);
Parametreler
Otomatik artan birincil anahtar sütunu
PrimaryKeySchema nesnesi, otomatik artan birincil anahtar sütunuyla ilgili aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yazma yapılandırmaları
RowPutChange nesnesi, otomatik artan birincil anahtar sütunuyla ilgili aşağıdaki parametreleri içerir.
|
|
|
|
|
|
|
|
|
|
|
|
Yanıt
Aşağıdaki PutRowResponse alanı, oluşturulan otomatik artan değeri içerir.
|
|
|
|
|
|
|
|