Tous les produits
Search
Centre de documentation

Tablestore:Use auto-increment primary key columns

Dernière mise à jour :Aug 18, 2026

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.

Remarque

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.

Remarque

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)

String

Le nom de la colonne de clé primaire à incrémentation automatique.

type (obligatoire)

PrimaryKeyType

Le type de données de la colonne de clé primaire à incrémentation automatique. Définissez ce paramètre sur INTEGER.

option (obligatoire)

PrimaryKeyOption

La configuration de la colonne de clé primaire. Définissez ce paramètre sur AUTO_INCREMENT.

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)

PrimaryKey

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 PrimaryKeyValue.AUTO_INCREMENT.

returnType (facultatif)

ReturnType

Le type de retour. La valeur par défaut est RT_NONE, qui ne renvoie pas les informations de clé primaire. Définissez ce paramètre sur RT_PK pour renvoyer la clé primaire complète, y compris la valeur générée.

Réponse

Le champ PutRowResponse suivant contient la valeur d'incrémentation automatique générée.

Champ

Type

Description

row

Row

Appelez getRow() pour obtenir la clé primaire de la ligne écrite. Ce champ est renvoyé uniquement si returnType est défini sur RT_PK et contient la valeur d'incrémentation automatique générée.