Este tópico descreve como configurar uma coluna de chave primária com incremento automático em uma tabela de dados com o Tablestore SDK for PHP. Também explica como gravar dados nessa coluna e obter o valor gerado.
Observações de uso
O Tablestore SDK for PHP V4.0.0 ou posterior oferece suporte a colunas de chave primária com incremento automático.
Os valores de uma coluna de incremento automático são exclusivos e aumentam no nível da chave de partição, mas não há garantia de que sejam consecutivos.
Pré-requisitos
Configurar uma coluna de chave primária com incremento automático
Ao criar uma tabela de dados, defina uma coluna de chave primária sem partição como coluna de incremento automático. Não é possível configurar colunas de incremento automático em tabelas existentes.
Apenas colunas de chave primária sem partição do tipo INTEGER podem ser definidas como colunas de incremento automático. Uma tabela de dados pode ter, no máximo, uma coluna de incremento automático. Os valores gerados para essa coluna são inteiros longos assinados de 64 bits.
Código de exemplo
O exemplo a seguir cria uma tabela de dados chamada test_table. A chave primária da tabela inclui a chave de partição id e a coluna de 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);
}
Gravar dados
Ao gravar dados em uma coluna de incremento automático, defina seu valor como um espaço reservado. Para obter o valor gerado e usá-lo em consultas e atualizações, defina o tipo de retorno de putRow como CONST_PK.
Código de exemplo
O exemplo a seguir grava uma linha de dados na tabela test_table, obtém e imprime as informações de chave primária da linha gravada.
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) . ")";
}
}
}