La table a deux clés: filename
(clé de partition) et eventTime
(clé de tri).
Je souhaite mettre à jour eventTime
pour certains filename
. J'ai essayé put_item ()
et update_item ()
en envoyant le même nom de fichier
avec le nouvel eventTime
mais ces fonctions ajoutent un nouvel élément au lieu de mise à jour.
Que dois-je utiliser à cette fin?
3 Réponses :
Vous ne pouvez pas. Puisqu'il fait partie de l'index, le champ est protégé. Ce que vous devez faire pour supprimer l'élément et l'ajouter à nouveau avec la nouvelle clé de tri.
Voir https://docs.aws.amazon.com/amazondynamodb /latest/APIReference/API_AttributeValueUpdate.html
Dans DynamoDB, vous pouvez effectuer une mise à jour conditionnelle sur un élément existant (insérer une nouvelle paire nom-valeur d'attribut si elle n'existe pas, ou remplacer une paire nom-valeur existante si elle a certaines valeurs d'attribut attendues). Reportez-vous à la documentation officielle ici: https://docs.aws.amazon.com/amazondynamodb/latest/ APIReference / API_UpdateItem.html
Vous pouvez également envisager d'utiliser les clés de tri de la bonne manière. Veuillez consulter la documentation suggérée ici: https://docs.aws.amazon.com/ amazondynamodb / latest / developerguide / bp-sort-keys.html
Selon DynamoDB / AttributeValueUpdate
docs aws:
Vous ne pouvez pas utiliser
UpdateItem
pour mettre à jour des attributs de clé primaire. Au lieu de cela, vous devrez supprimer l'élément, puis utiliserPutItem
pour créer un nouvel élément avec de nouveaux attributs.