La operación UpdateRow actualiza los datos de una fila específica.
Si la fila especificada no existe, se inserta una nueva. Si la fila ya existe, UpdateRow agrega, modifica o elimina los valores de las columnas de atributos indicadas según la solicitud.
Estructura del mensaje de solicitud
message UpdateRowRequest {
required string table_name = 1;
required bytes row_change = 2;
required Condition condition = 3;
optional ReturnContent return_content = 4;
optional string transaction_id = 5;
}
|
Nombre |
Tipo |
Obligatorio |
Descripción |
|
table_name |
string |
Sí |
Nombre de la tabla por actualizar. |
|
row_change |
bytes |
Sí |
Datos de actualización que incluyen la clave principal y las columnas de atributos, codificados en formato PlainBuffer. Para obtener más información, consulte PlainBuffer. Tablestore agrega, modifica o elimina los valores de las columnas de atributos especificadas según el valor de UpdateType en row_change. Las columnas de atributos no incluidas en row_change no se ven afectadas. Valores válidos para UpdateType:
|
|
condition |
Sí |
Indica si se debe comprobar la existencia de la fila antes de actualizarla. Valores válidos:
|
|
|
return_content |
No |
Tipo de datos devueltos tras una escritura exitosa. Solo se admite devolver la clave principal, diseñada principalmente para la función de columna de clave principal con incremento automático. |
|
|
transaction_id |
string |
No |
ID de la transacción local. Establezca este parámetro al utilizar la función de transacción local. |
Estructura del mensaje de respuesta
message UpdateRowResponse {
required ConsumedCapacity consumed = 1;
optional bytes row = 2;
}
|
Nombre |
Tipo |
Descripción |
|
consumed |
Unidades de capacidad consumidas por la operación. Para obtener más información, consulte Consumo de unidades de capacidad. |
|
|
row |
bytes |
Datos devueltos cuando se establece return_content. Si no se establece return_content o no se devuelve ningún valor, este parámetro es NULL. Los datos devueltos están codificados en formato PlainBuffer. Para obtener más información sobre PlainBuffer, consulte PlainBuffer. |
Uso de un SDK
Utilice un SDK de uno de los siguientes lenguajes para actualizar una sola fila.
Consumo de unidades de capacidad
-
Si la fila no existe, las unidades de capacidad consumidas dependen de la configuración de comprobación de condición.
IGNORE: Las CU de escritura consumidas equivalen a la suma del tamaño de datos de la clave principal y el tamaño de datos de la columna de atributos, dividida entre 4 KB y redondeada hacia arriba. Para las columnas de atributos eliminadas, solo se cuenta la longitud del nombre de la columna para calcular el tamaño de los datos.
EXPECT_EXIST: La operación falla y consume 1 CU de escritura y 1 CU de lectura.
-
Si la fila existe, las unidades de capacidad consumidas dependen de la configuración de comprobación de condición.
IGNORE: Las CU de escritura consumidas equivalen a la suma del tamaño de datos de la clave principal y el tamaño de datos de la columna de atributos, dividida entre 4 KB y redondeada hacia arriba. Para las columnas de atributos eliminadas, solo se cuenta la longitud del nombre de la columna para calcular el tamaño de los datos.
EXPECT_EXIST: Consume las mismas CU de escritura que IGNORE, además de CU de lectura adicionales. Las CU de lectura consumidas equivalen al tamaño de datos de la clave principal dividido entre 4 KB y redondeado hacia arriba.
Para obtener más información sobre cómo se calcula el tamaño de los datos, consulte Pricing.
Si la solicitud supera el tiempo de espera y los resultados quedan indefinidos, es posible que se consuman o no unidades de capacidad.
Si ocurre un error interno (código de estado HTTP: 5xx), no se consumen unidades de capacidad. Para otros errores, se consume 1 CU de escritura y 1 CU de lectura.