Instrucciones de actualización de PartiQL para DynamoDB - Amazon DynamoDB

Instrucciones de actualización de PartiQL para DynamoDB

Use la instrucción UPDATE para modificar el valor de uno o más atributos dentro de un elemento de una tabla de Amazon DynamoDB.

nota

Sólo puede actualizar un elemento a la vez; no puede emitir una sola instrucción de DynamoDB PartiQL que actualice varios elementos. Para obtener información sobre cómo actualizar varios elementos, consulte Realización de transacciones con PartiQL para DynamoDB or Ejecución de operaciones por lote con PartiQL para DynamoDB.

Sintaxis

UPDATE table [SET | REMOVE] path [= data] […] WHERE condition [RETURNING returnvalues] <returnvalues> ::= [ALL OLD | MODIFIED OLD | ALL NEW | MODIFIED NEW] *

Parámetros

tabla

(Necesario) Tabla que contiene los datos que se van a modificar.

path

(Necesario) Nombre de atributo o ruta de documento que se va a crear o modificar.

data

(Necesario) Valor de atributo o resultado de una operación.

Las operaciones admitidas para usar con SET:

  • LIST_APPEND: agrega un valor a un tipo de lista.

  • SET_ADD: agrega un valor a un número o conjunto de cadenas.

  • SET_DELETE: elimina un valor de un número o conjunto de cadenas.

condition

(Necesario) Criterios de selección para el elemento que se va a modificar. Esta condición debe resolverse con un único valor de clave principal.

returnvalues

(Opcional) Utilizar returnvalues si desea obtener los atributos del elemento tal como aparecen antes o después de que se actualicen. Los valores válidos son:

  • ALL OLD *: devuelve todos los atributos del elemento, tal y como aparecían antes de la operación de actualización.

  • MODIFIED OLD *: devuelve sólo los atributos actualizados, tal y como aparecían antes de la operación de actualización.

  • ALL NEW *: devuelve todos los atributos del elemento, tal como aparecen después de la operación de actualización.

  • MODIFIED NEW *: devuelve solamente los atributos actualizados, tal y como aparecen después de la operación UpdateItem.

Valor devuelto

Esta instrucción no devuelve un valor a menos que se especifique el parámetro returnvalues.

nota

Si la cláusula WHERE de la instrucción UPDATE no se evalúa como true (verdadero) para ningún elemento de la tabla DynamoDB, se devuelve ConditionalCheckFailedException.

Ejemplos

Actualiza el valor del atributo de un elemento existente en. Si el atributo no existe, se crea.

En la siguiente consulta se actualiza un elemento de la tabla "Music" agregando un atributo de tipo number (AwardsWon) y un atributo de tipo map (AwardDetail).

UPDATE "Music" SET AwardsWon=1 SET AwardDetail={'Grammys':[2020, 2018]} WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

Puede agregar RETURNING ALL OLD * para devolver los atributos tal y como aparecían antes de la operación Update.

UPDATE "Music" SET AwardsWon=1 SET AwardDetail={'Grammys':[2020, 2018]} WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks' RETURNING ALL OLD *

Devuelve lo siguiente:

{ "Items": [ { "Artist": { "S": "Acme Band" }, "SongTitle": { "S": "PartiQL Rocks" } } ] }

Puede agregar RETURNING ALL NEW * para devolver los atributos tal y como aparecían después de la operación Update.

UPDATE "Music" SET AwardsWon=1 SET AwardDetail={'Grammys':[2020, 2018]} WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks' RETURNING ALL NEW *

Devuelve lo siguiente:

{ "Items": [ { "AwardDetail": { "M": { "Grammys": { "L": [ { "N": "2020" }, { "N": "2018" } ] } } }, "AwardsWon": { "N": "1" } } ] }

En la siguiente consulta se actualiza un elemento de la tabla "Music" agregando a una lista AwardDetail.Grammys.

UPDATE "Music" SET AwardDetail.Grammys =list_append(AwardDetail.Grammys,[2016]) WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

En la siguiente consulta se actualiza un elemento de la tabla "Music" eliminando de una lista AwardDetail.Grammys.

UPDATE "Music" REMOVE AwardDetail.Grammys[2] WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

En la siguiente consulta se actualiza un elemento de la tabla "Music" agregando BillBoardal mapaAwardDetail.

UPDATE "Music" SET AwardDetail.BillBoard=[2020] WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

En la siguiente consulta se actualiza un elemento de la tabla "Music" agregando el atributo de conjunto de string BandMembers.

UPDATE "Music" SET BandMembers =<<'member1', 'member2'>> WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

En la siguiente consulta se actualiza un elemento de la tabla "Music" agregando newbandmember al conjunto de string BandMembers.

UPDATE "Music" SET BandMembers =set_add(BandMembers, <<'newbandmember'>>) WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'