Todos os produtos
Search
Central de documentação

Tablestore:Write a row

Última atualização: Aug 20, 2026

Use o Tablestore SDK for Python para escrever uma linha e, opcionalmente, especifique uma condição de gravação, versão de dados ou transação local.

Pré-requisitos

Instale o Tablestore SDK for Python e inicialize um cliente.

Descrição da função

Chame put_row para escrever uma linha. Se a chave primária já existir, o método substituirá a linha; caso contrário, criará uma nova linha.

def put_row(
    self,
    table_name,
    row,
    condition=None,
    return_type=None,
    transaction_id=None,
)

O exemplo a seguir escreve uma linha com chave primária ("device", 1) na tabela example_table.

primary_key = [("partition", "device"), ("id", 1)]
attribute_columns = [("name", "thermometer"), ("status", "online")]
row = Row(primary_key, attribute_columns)
condition = Condition(RowExistenceExpectation.IGNORE)

consumed, return_row = client.put_row(
    "example_table",
    row,
    condition,
)
print("Write CU: %s" % consumed.write)

Parâmetros

O método put_row tem os seguintes parâmetros:

Nome

Tipo

Descrição

table_name (obrigatório)

str

Nome da tabela.

row (obrigatório)

Row

Chave primária e colunas de atributos a serem gravadas.

condition (opcional)

Condition

Condição de gravação. Por padrão, o sistema não verifica a existência da linha. Para mais informações, consulte Use conditional updates.

return_type (opcional)

ReturnType

Tipo de retorno. O valor padrão RT_NONE não retorna dados. Já RT_PK retorna a chave primária, sendo útil para obter o valor de uma coluna de chave primária com incremento automático.

transaction_id (opcional)

str

ID da transação local. Especifique este parâmetro apenas para gravações em uma transação local. Para mais informações, consulte Use local transactions.

Dados da linha

O parâmetro row é do tipo Row e contém os seguintes parâmetros:

Nome

Tipo

Descrição

primary_key (obrigatório)

List[Tuple]

Chave primária. Os nomes, a ordem, a quantidade e os tipos das colunas de chave primária devem corresponder ao esquema de chave primária da tabela.

attribute_columns (opcional)

List[Tuple]

Colunas de atributos. Cada elemento segue o formato (column_name, column_value) ou (column_name, column_value, timestamp). Os valores das colunas de atributos aceitam os tipos str, int, bytes, float e bool. Se você omitir timestamp, o servidor gerará uma versão de dados.

Resposta

put_row retorna os seguintes valores:

Campo

Tipo

Descrição

consumed

CapacityUnit

CUs de leitura e gravação consumidas pela operação.

return_row

Row

Linha retornada. Se return_type for RT_PK, o método retorna a chave primária. Caso contrário, este valor será None.

Exemplos

Escrever múltiplas colunas de atributos

O exemplo a seguir grava colunas de atributos dos tipos string, inteiro e booleano.

primary_key = [("partition", "device"), ("id", 2)]
attribute_columns = [
    ("name", "humidity-sensor"),
    ("temperature", 26),
    ("enabled", True),
]
row = Row(primary_key, attribute_columns)

client.put_row(
    "example_table",
    row,
    Condition(RowExistenceExpectation.IGNORE),
)

Especificar versões de dados

O terceiro elemento da tupla de coluna de atributos define a versão dos dados em milissegundos. A versão deve estar dentro do intervalo válido permitido pela tabela.

timestamp = int(time.time() * 1000)
primary_key = [("partition", "device"), ("id", 3)]
attribute_columns = [
    ("status", "online", timestamp),
    ("temperature", 25, timestamp),
]
row = Row(primary_key, attribute_columns)

client.put_row(
    "example_table",
    row,
    Condition(RowExistenceExpectation.IGNORE),
)

Obter um valor de chave primária com incremento automático

Ao gravar em uma tabela com coluna de chave primária de incremento automático, defina o valor da coluna como PK_AUTO_INCR e return_type como RT_PK. Para mais detalhes sobre os requisitos, consulte Use an auto-increment primary key column.

primary_key = [("partition", "device"), ("id", PK_AUTO_INCR)]
row = Row(primary_key, [("name", "pressure-sensor")])

consumed, return_row = client.put_row(
    "example_table",
    row,
    Condition(RowExistenceExpectation.IGNORE),
    ReturnType.RT_PK,
)
print(return_row.primary_key)