Este tópico descreve como configurar uma coluna de chave primária de incremento automático para uma tabela de dados usando o SDK do Tablestore para Python. Também explica como gravar dados em uma coluna de chave primária de incremento automático e recuperar os valores gerados para a coluna de chave primária de incremento automático.
Notas de uso
-
O SDK do Tablestore para Python V4.0.0 e versões posteriores oferecem suporte ao recurso de coluna de chave primária de incremento automático.
-
Os valores de uma coluna de chave primária de incremento automático são únicos e aumentam de forma monotônica, mas nem sempre de forma contínua, em uma partição que compartilha o mesmo valor de chave de partição.
Pré-requisitos
Um cliente é inicializado. Para obter mais informações, consulte Inicializar um cliente do Tablestore.
Configurar uma coluna de chave primária de incremento automático
Você pode especificar uma coluna de chave primária que não seja a chave de partição como uma coluna de chave primária de incremento automático ao criar uma tabela de dados. Para tabelas de dados existentes, não é possível configurar uma coluna de chave primária de incremento automático.
Você pode especificar uma coluna de chave primária que não seja a chave de partição como uma coluna de chave primária de incremento automático somente quando o tipo de dados da coluna de chave primária for Integer. Uma tabela de dados pode ter no máximo uma coluna de chave primária de incremento automático. Os valores gerados para a coluna de chave primária de incremento automático são inteiros longos de 64 bits com sinal.
Código de exemplo
O código de 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 chave primária de incremento automático incr.
schema_of_primary_key = [('id', 'STRING'), ('incr', 'INTEGER', PK_AUTO_INCR)]
table_meta = TableMeta('test_table', schema_of_primary_key)
table_options = TableOptions()
reserved_throughput = ReservedThroughput(CapacityUnit())
try:
client.create_table(table_meta, table_options, reserved_throughput)
print("Create table succeeded.")
except Exception as e:
print("Create table failed. %s" % e)
Gravar dados
Ao gravar dados em uma coluna de chave primária de incremento automático, você precisa apenas definir o valor da coluna de chave primária de incremento automático como um placeholder. Se você quiser obter o valor gerado da coluna de chave primária de incremento automático para consultas e atualizações de dados, também precisará definir o tipo de retorno de put_row como RT_PK.
Código de exemplo
O código de exemplo a seguir grava uma linha de dados na tabela test_table e obtém e imprime as informações da chave primária dos dados da linha gravada.
# Construct the primary key.
primary_key = [('id', 'row1'), ('incr', PK_AUTO_INCR)]
# Construct the row data to write.
attribute_columns = [('col1', 'val1')]
row = Row(primary_key, attribute_columns)
try:
# Call the putRow method to write the row data, and set the return type to RT_PK (return the primary key information of the written row data).
consumed, return_row = client.put_row('test_table', row, return_type=ReturnType.RT_PK)
# Read and write CU consumption
print('Read CU Cost: %s' % consumed.read)
print('Write CU Cost: %s' % consumed.write)
# Obtain and print the returned primary key information. If the return type is not set to RT_PK, the primary key information is not returned by default.
if return_row is not None:
print('Primary key: %s' % return_row.primary_key)
except Exception as e:
print("Write failed. %s" % e)