Este tema describe cómo configurar una columna de clave principal con incremento automático para una tabla de datos mediante Tablestore SDK for PHP, así como escribir datos en la columna con incremento automático y obtener el valor generado.
Notas de uso
Tablestore SDK for PHP V4.0.0 o versiones posteriores admite columnas de clave principal con incremento automático.
Los valores de una columna con incremento automático son únicos y aumentan en el nivel de clave de partición, pero no se garantiza que sean consecutivos.
Requisitos previos
Configurar una columna de clave principal con incremento automático
Al crear una tabla de datos, puede establecer una columna de clave principal que no sea de partición como columna con incremento automático. En las tablas de datos existentes no es posible configurar columnas con incremento automático.
Solo las columnas de clave principal que no son de partición y de tipo INTEGER pueden configurarse como columnas con incremento automático. Una tabla de datos admite como máximo una columna con incremento automático. Los valores generados para esta columna son enteros largos con signo de 64 bits.
Código de ejemplo
El siguiente código de ejemplo crea una tabla de datos llamada test_table. La clave principal de la tabla incluye la clave de partición id y la columna con incremento automático 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);
}
Escribir datos
Al escribir datos en una columna con incremento automático, solo necesita establecer su valor como un marcador de posición. Para obtener el valor de incremento automático generado en consultas y actualizaciones, debe establecer el tipo de retorno de putRow como CONST_PK.
Código de ejemplo
El siguiente código de ejemplo escribe una fila de datos en la tabla test_table, y obtiene e imprime la información de la clave principal de la fila escrita.
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) . ")";
}
}
}