Tous les produits
Search
Centre de documentation

Tablestore:Configure an auto-increment primary key column

Dernière mise à jour :Aug 18, 2026

Cette rubrique explique comment configurer une colonne de clé primaire à incrémentation automatique pour une table de données à l'aide du SDK Tablestore pour PHP, ainsi que la manière d'écrire des données dans cette colonne et de récupérer la valeur générée.

Remarques

  • Le SDK Tablestore pour PHP version 4.0.0 ou ultérieure prend en charge les colonnes de clé primaire à incrémentation automatique.

  • Les valeurs issues d'une colonne à incrémentation automatique sont uniques et augmentent au niveau de la clé de partition, mais leur continuité n'est pas garantie.

Prérequis

Initialiser une instance OTSClient

Configurer une colonne de clé primaire à incrémentation automatique

Lors de la création d'une table de données, vous pouvez définir une colonne de clé primaire (autre que la clé de partition) comme colonne à incrémentation automatique. Il est impossible de configurer des colonnes à incrémentation automatique sur des tables de données existantes.

Remarque

Seules les colonnes de clé primaire autres que la clé de partition, de type INTEGER, peuvent être définies comme colonnes à incrémentation automatique. Une table de données ne peut comporter qu'une seule colonne de ce type. Les valeurs générées sont des entiers longs signés sur 64 bits.

Exemple de code

L'exemple de code suivant crée une table de données nommée test_table. La clé primaire de la table comprend la clé de partition id et la colonne à incrémentation automatique incr.

function createTable($client) 
{
    $request = [
        'table_meta' => [
            'table_name' => 'test_table',
            'primary_key_schema' => [
                ['id', PrimaryKeyTypeConst::CONST_STRING],
                ['incr', PrimaryKeyTypeConst::CONST_INTEGER, PrimaryKeyOptionConst::CONST_PK_AUTO_INCR]
            ]
        ],
        'reserved_throughput' => [
            'capacity_unit' => [
                'read' => 0,
                'write' => 0
            ]
        ],
        'table_options' => [
            'time_to_live' => -1,
            'max_versions' => 1,
            'deviation_cell_version_in_sec' => 86400
        ]
    ];
    $client->createTable($request);
}

Écrire des données

Pour écrire des données dans une colonne à incrémentation automatique, il suffit de définir sa valeur sur un espace réservé. Afin de récupérer la valeur générée automatiquement pour des requêtes ou des mises à jour ultérieures, vous devez définir le type de retour de putRow sur CONST_PK.

Exemple de code

L'exemple de code suivant écrit une ligne de données dans la table test_table, puis récupère et affiche les informations de clé primaire correspondant aux données écrites.

function putRow($client)
{
    $row = [
        'table_name' => 'test_table',
        'primary_key' => [
            ['id', 'row1'],
            // Configure the auto-increment column.
            ['incr', null, PrimaryKeyTypeConst::CONST_PK_AUTO_INCR]
        ],
        'attribute_columns' => [
            ['col1', 'val1']
        ],
        'return_content' => [
            'return_type' => ReturnTypeConst::CONST_PK
        ]
    ];
    $result = $client->putRow($row);
    // CU consumption for read and write operations.
    echo "Read CU Cost: " . $result['consumed']['capacity_unit']['read'] . "\n";
    echo "Write CU Cost: " . $result['consumed']['capacity_unit']['write'] . "\n";

    // Obtain and print the returned primary key information. If the return type is not set to CONST_PK, the primary key information is not returned by default.
    if(!empty($result['primary_key'])){
        echo "Primary key: ";
        foreach ($result['primary_key'] as $primaryKey) {
            echo "(" . implode(", ", $primaryKey) . ")";
        }
    }
}