Utilisez le SDK Tablestore pour Java afin de configurer une colonne de clé primaire non partitionnée en tant que colonne à incrémentation automatique lors de la création d'une table, et récupérez la valeur générée lors de l'écriture des données.
Prérequis
Installez le SDK Tablestore pour Java et initialisez le client. Les colonnes de clé primaire à incrémentation automatique nécessitent la version 4.2.0 ou ultérieure. Nous vous recommandons d'utiliser la dernière version disponible.
Description de la fonctionnalité
L'utilisation de colonnes de clé primaire à incrémentation automatique implique trois étapes : configurer la colonne, utiliser un espace réservé lors de l'écriture des données et récupérer la valeur générée.
Une colonne de clé primaire à incrémentation automatique doit être une clé non partitionnée de type INTEGER et doit être configurée lors de la création de la table. Chaque table ne peut contenir qu'une seule colonne de clé primaire à incrémentation automatique. Tablestore génère des entiers signés 64 bits pour cette colonne.
Les valeurs générées sont uniques et augmentent strictement au sein d'une même clé de partition, mais elles ne sont pas nécessairement consécutives.
Configurer une colonne de clé primaire à incrémentation automatique
Définissez l'option option d'une colonne de clé primaire non partitionnée sur PrimaryKeyOption.AUTO_INCREMENT lors de la création de la table.
L'exemple suivant crée la table example_table. La table utilise id comme clé de partition et incr comme colonne de clé primaire à incrémentation automatique.
Attendez que la table soit chargée avant d'écrire des données.
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);
Écrire des données et récupérer la valeur générée
Définissez la valeur de la colonne à incrémentation automatique sur PrimaryKeyValue.AUTO_INCREMENT lors de l'écriture des données. Pour récupérer la valeur générée, définissez le type de retour sur ReturnType.RT_PK. Sinon, la réponse n'inclura pas les informations de clé primaire.
L'exemple suivant écrit une ligne dans example_table et récupère la valeur générée de la colonne incr à partir de la réponse.
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);
Paramètres
Colonne de clé primaire à incrémentation automatique
L'objet PrimaryKeySchema contient les paramètres suivants liés à une colonne de clé primaire à incrémentation automatique.
|
Nom |
Type |
Description |
|
name (obligatoire) |
|
Le nom de la colonne de clé primaire à incrémentation automatique. |
|
type (obligatoire) |
|
Le type de données de la colonne de clé primaire à incrémentation automatique. Définissez ce paramètre sur |
|
option (obligatoire) |
|
La configuration de la colonne de clé primaire. Définissez ce paramètre sur |
Configurations d'écriture
L'objet RowPutChange contient les paramètres suivants liés à une colonne de clé primaire à incrémentation automatique.
|
Nom |
Type |
Description |
|
primaryKey (obligatoire) |
|
La clé primaire de la ligne. Les noms, l'ordre et les types des colonnes doivent correspondre au schéma de la table. Définissez la valeur de la colonne à incrémentation automatique sur |
|
returnType (facultatif) |
|
Le type de retour. La valeur par défaut est |
Réponse
Le champ PutRowResponse suivant contient la valeur d'incrémentation automatique générée.
|
Champ |
Type |
Description |
|
|
|
Appelez |