Tous les produits
Search
Centre de documentation

Tablestore:Colonne de clé primaire à incrémentation automatique

Dernière mise à jour :Sep 18, 2026

Lorsque vous définissez une colonne de clé primaire (autre que la clé de partition) comme colonne à incrémentation automatique, il n'est pas nécessaire de fournir une valeur pour celle-ci lors de l'écriture des données. Tablestore génère automatiquement une valeur unique pour cette colonne, qui augmente strictement au sein de chaque clé de partition.

Fonctionnalités

Une colonne de clé primaire à incrémentation automatique présente les caractéristiques suivantes :

  • Les valeurs d'une colonne à incrémentation automatique sont uniques et strictement croissantes au sein d'une clé de partition, mais ne sont pas nécessairement consécutives.

  • Le type de données d'une colonne à incrémentation automatique est un entier signé 64 bits.

  • Les colonnes à incrémentation automatique sont définies au niveau de la table de données. Une instance peut contenir des tables de données avec ou sans colonnes à incrémentation automatique.

Remarque

Cette fonctionnalité n'affecte pas les règles de mise à jour conditionnelle. Pour plus d'informations, consultez la rubrique Mise à jour conditionnelle.

Notes d'utilisation

  • Chaque table de données peut comporter au maximum une colonne de clé primaire à incrémentation automatique. Une clé de partition ne peut pas être définie comme colonne à incrémentation automatique.

  • Vous ne pouvez définir une colonne à incrémentation automatique qu'à la création d'une table de données. Il est impossible d'en ajouter une à une table existante.

  • Seule une colonne de clé primaire de type entier peut être définie comme colonne à incrémentation automatique. La valeur générée par le système pour une colonne à incrémentation automatique est un entier signé 64 bits.

  • Il est interdit de définir une colonne d'attribut comme colonne à incrémentation automatique.

  • La fonctionnalité de colonne de clé primaire à incrémentation automatique et la fonctionnalité de transaction locale sont incompatibles.

  • Lors de l'écriture dans une table dotée d'une colonne de clé primaire à incrémentation automatique, vous devez récupérer et stocker la valeur générée par la colonne pour les mises à jour ou lectures ultérieures.

Opérations API

Ce tableau décrit les opérations API liées à la fonctionnalité de colonne de clé primaire à incrémentation automatique.

API

Description

CreateTable

Pour utiliser cette fonctionnalité, vous devez définir une colonne de clé primaire (autre que la clé de partition) comme colonne à incrémentation automatique lors de la création de la table de données.

UpdateTable

Une fois la table de données créée, vous ne pouvez pas utiliser l'opération API UpdateTable pour redéfinir une colonne de clé primaire comme colonne à incrémentation automatique.

PutRow

Lors de l'écriture des données, il n'est pas nécessaire de spécifier une valeur pour la colonne à incrémentation automatique, car Tablestore en génère une automatiquement.

Pour obtenir la clé primaire complète, définissez le paramètre ReturnType sur RT_PK. Vous pouvez ensuite utiliser la clé primaire pour interroger les données via l'opération API GetRow.

Important

Si vous devez mettre à jour une ligne sans avoir stocké sa valeur de clé primaire à incrémentation automatique, utilisez d'abord l'opération API GetRange pour récupérer la clé primaire complète avant d'effectuer la mise à jour.

UpdateRow

BatchWriteRow

GetRow

L'opération API GetRow requiert une clé primaire complète. Vous pouvez obtenir la clé primaire complète en définissant le paramètre ReturnType sur RT_PK dans votre requête PutRow, UpdateRow ou BatchWriteRow.

Important

Si vous ne stockez pas la valeur de la colonne de clé primaire à incrémentation automatique lors de l'écriture des données, vous pouvez toujours lire une plage de données en vous basant sur la première colonne de clé primaire. Pour plus d'informations, consultez la rubrique Lire une plage de données.

BatchGetRow

Utilisation

Console

  1. Créez une table de données avec une colonne de clé primaire à incrémentation automatique.

    1. Connectez-vous à la console Tablestore.

    2. Sur la page Overview, localisez l'instance à gérer et cliquez sur Manage Instance dans la colonne Actions.

    3. Sous l'onglet Instance Details, dans la section Tables, cliquez sur Create Table.

    4. Dans la boîte de dialogue Create Table, configurez les champs Table Name et Primary Key. Ajustez les autres paramètres selon vos besoins métier.

      Lors de la configuration de la clé primaire, sélectionnez Auto Increment comme type pour une colonne de clé primaire autre que la clé de partition.

      Remarque

      Pour plus d'informations sur la configuration des paramètres, consultez la rubrique Opérations sur les tables de données.

    5. Cliquez sur Create.

  2. Écrivez des données dans la table.

    1. Sous l'onglet Instance Details, dans la section Tables, cliquez sur le nom de la table de données.

    2. Sous l'onglet Query Data, cliquez sur Insert.

    3. Dans la boîte de dialogue Insert, saisissez les valeurs de clé primaire et ajoutez des colonnes d'attribut si nécessaire.

      Il n'est pas nécessaire de saisir une valeur pour la colonne à incrémentation automatique. Le système génère automatiquement une valeur lors de l'écriture des données. Pour ajouter plusieurs colonnes d'attribut, cliquez plusieurs fois sur l'icône imageimage et configurez le nom, le type et la valeur pour chacune.

    4. Cliquez sur OK.

      Le système affiche les données écrites avec succès. Enregistrez la clé primaire complète de la ligne pour les mises à jour ou lectures ultérieures.

CLI

  1. Créez et utilisez une table de données avec une colonne de clé primaire à incrémentation automatique.

    1. Exécutez la commande create pour créer une table de données. Pour plus d'informations, consultez la rubrique Créer une table.

      L'exemple suivant crée une table de données nommée mytable. Cette table comporte deux colonnes de clé primaire : uid (chaîne) et pid (entier), où pid est la colonne à incrémentation automatique. Les données de cette table n'expirent jamais.

      create -t mytable --pk '[{"c":"uid", "t":"string"}, {"c":"pid", "t":"integer", "opt":"auto"}]'
    2. Exécutez la commande use --wc -t mytable pour utiliser la table de données.

  2. Exécutez la commande put pour écrire une ligne. Pour plus d'informations, consultez la rubrique Insérer de nouvelles données.

    Remarque

    Après l'écriture des données, exécutez la commande scan pour récupérer une ligne et obtenir sa clé primaire complète. Pour plus d'informations, consultez les rubriques Analyser les données ou Exporter les données.

    L'exemple suivant insère une ligne dont la valeur de la première colonne de clé primaire est « 86 » et dont la colonne à incrémentation automatique est définie sur null. La ligne comprend également deux colonnes d'attribut : name (chaîne) et country (chaîne).

    put --pk '["86", null]' --attr '[{"c":"name", "v":"redchen"}, {"c":"country", "v":"china"}]'

SDKs

Cette fonctionnalité est disponible dans les SDK Java, Go, Python, Node.js, .NET et PHP. Cette section fournit un exemple utilisant le SDK Java.

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);

Facturation

Cette fonctionnalité n'affecte pas les règles de facturation existantes. Le renvoi des données de clé primaire ne consomme aucune unité de capacité de lecture supplémentaire.