Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
AttributeUpdates (héritage)
Note
Dans la mesure du possible, nous vous recommandons d'utiliser les nouveaux paramètres d'expression plutôt que ces paramètres hérités. Pour de plus amples informations, veuillez consulter Utilisation d'expressions dans DynamoDB. Pour obtenir des informations précises sur le nouveau paramètre qui remplace celui-ci, utilisez UpdateExpressionplutôt..
Dans une opération UpdateItem
, le paramètre conditionnel hérité AttributeUpdates
contient les noms d'attributs à modifier, l'action à effectuer sur chacun d'eux et leur nouvelle valeur. Si vous mettez à jour un attribut de clé d'index pour tous les index figurant dans cette table, le type d'attribut doit correspondre au type de clé d'index défini dans la section AttributesDefinition
de la description de la table. Vous pouvez utiliser une opération UpdateItem
pour mettre à jour tous les attributs autres que de clé.
Les valeurs d'attribut ne peuvent pas être nulles. Les attributs de type chaîne et binaire doivent avoir une longueur supérieure à zéro. Les attributs de type ensemble ne peuvent pas être vides. Les demandes comprenant des valeurs vides sont rejetées avec une exception ValidationException
.
Chaque élément AttributeUpdates
se compose d'un nom d'attribut à modifier, ainsi que de ce qui suit :
-
Value
: nouvelle valeur, le cas échéant, pour cet attribut. -
Action
: valeur spécifiant comment effectuer la mise à jour. Cette action n'est valide que pour un attribut existant dont le type de données est nombre ou ensemble. N'utilisez pas l'actionADD
pour d'autres types de données.Si un élément avec la clé primaire spécifiée est trouvé dans la table, les valeurs suivantes exécutent les actions suivantes :
-
PUT
- Ajoute l'attribut spécifié à l'élément. Si l'attribut existe déjà, il est remplacé par la nouvelle valeur. -
DELETE
- Si aucune valeur n'est spécifiée pourDELETE
, supprime l'attribut et sa valeur. Le type de données de la valeur spécifiée doit correspondre au type de données de la valeur existante.Si un ensemble de valeurs est spécifié, ces valeurs sont soustraites de l'ancien ensemble. Par exemple, si la valeur d'attribut était l'ensemble
[a,b,c]
et si l'actionDELETE
spécifie[a,c]
, la valeur d'attribut finale est[b]
. La spécification d'un ensemble vide est une erreur. -
ADD
- Ajoute la valeur spécifiée à l'élément si l'attribut n'existe pas encore. Si l'attribut existe, le comportement de l'actionADD
dépend du type de données de l'attribut :-
Si l'attribut existant est un nombre et si
Value
est également un nombre,Value
est ajouté mathématiquement à l'attribut existant. SiValue
est un nombre négatif, celui-ci est soustrait de l'attribut existant.Note
Si vous utilisez l'action
ADD
pour incrémenter ou décrémenter une valeur numérique pour un élément qui n'existe pas avant la mise à jour, DynamoDB utilise 0 comme valeur initiale.De même, si vous utilisez l'action
ADD
pour un élément existant afin d'incrémenter ou de décrémenter une valeur d'attribut qui n'existe pas avant la mise à jour, DynamoDB utilise0
comme valeur initiale. Par exemple, supposons que l'élément que vous souhaitez mettre à jour ne possède pas d'attribut nommé itemcount, mais que vous décidez malgré tout d'ajouter (ADD
) le nombre3
à cet attribut. DynamoDB crée l'attribut itemcount, définit sa valeur initiale sur0
, puis y ajoute3
. Le résultat sera un nouvel attribut itemcount, avec une valeur de3
. -
Si le type de données existant est un ensemble, et si
Value
est également un ensemble,Value
est ajouté à l'ensemble existant. Par exemple, si la valeur d'attribut est l'ensemble[1,2]
et si l'actionADD
spécifie[3]
, la valeur d'attribut finale est[1,2,3]
. Une erreur se produit si une actionADD
est spécifiée pour un attribut ensemble et si le type d'attribut spécifié ne correspond pas au type d'ensemble existant.Les deux ensembles doivent avoir le même type de données primitif. Par exemple, si le type de données existant est un ensemble de chaînes,
Value
doit également être un ensemble de chaînes.
-
Si aucun élément avec la clé primaire spécifiée n'est trouvé dans la table, les valeurs suivantes exécutent les actions suivantes :
-
PUT
- Amène DynamoDB à créer un élément avec la clé primaire spécifiée, puis ajoute l'attribut. -
DELETE
- Rien ne se passe, car des attributs ne peuvent pas être supprimés d'un élément inexistant. L'opération réussit, mais DynamoDB ne crée pas d'élément. -
ADD
– Amène DynamoDB à créer un élément avec la clé primaire et le nombre (ou ensemble de nombres) fournis pour la valeur d'attribut. Les seuls types de données autorisés sont Nombre et Ensemble de nombres.
-
Si vous fournissez des attributs faisant partie d'une clé d'index, les types de données pour ces attributs doivent correspondre à ceux du schéma dans la définition d'attribut de la table.
Utiliser à UpdateExpressionla place — Exemple
Supposons que vous souhaitez modifier un élément dans la table Music. Vous pouvez utiliser une UpdateItem
requête avec un AttributeUpdates
paramètre, comme dans cet AWS CLI exemple :
aws dynamodb update-item \ --table-name Music \ --key '{ "SongTitle": {"S":"Call Me Today"}, "Artist": {"S":"No One You Know"} }' \ --attribute-updates '{ "Genre": { "Action": "PUT", "Value": {"S":"Rock"} } }'
Vous pouvez utiliser UpdateExpression
à la place :
aws dynamodb update-item \ --table-name Music \ --key '{ "SongTitle": {"S":"Call Me Today"}, "Artist": {"S":"No One You Know"} }' \ --update-expression 'SET Genre = :g' \ --expression-attribute-values '{ ":g": {"S":"Rock"} }'