Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
AttributeUpdates (eredità)
Nota
Consigliamo di utilizzare i nuovi parametri di espressione piuttosto che i parametri precedenti, se possibile. Per ulteriori informazioni, consulta Utilizzo di espressioni in DynamoDB. Per informazioni specifiche sul nuovo parametro che sostituisce questo, consulta usa UpdateExpressioninvece..
In un'operazione UpdateItem
, parametro condizionale legacy AttributeUpdates
contiene i nomi degli attributi da modificare, l'operazione da eseguire su ognuno di essi e il nuovo valore per ciascuno. Se si sta aggiornando un attributo che è un attributo chiave di indice per qualsiasi indice in tale tabella, il tipo di attributo deve corrispondere al tipo di chiave di indice definito in AttributesDefinition
della descrizione della tabella. È possibile utilizzare UpdateItem
per aggiornare eventuali attributi non chiave.
I valori degli attributi non possono essere nulli. Gli attributi di tipo String e Binary devono avere lunghezze maggiori di zero. Gli attributi di tipo Set non devono essere vuoti. Le richieste con valori vuoti verranno rifiutate con una eccezione ValidationException
.
Ogni elemento AttributeUpdates
è costituito da un nome di attributo da modificare, insieme a quanto segue:
-
Value
: il nuovo valore, se applicabile, per questo attributo. -
Action
: un valore che specifica come eseguire l'aggiornamento. Questa operazione è valida solo per un attributo esistente il cui tipo di dati è Number o Set; non utilizzareADD
per altri tipi di dati.Se nella tabella viene trovato un elemento con la chiave primaria specificata, i valori seguenti eseguono le operazioni riportate:
-
PUT
: aggiunge l'attributo specificato all'elemento. Se l'attributo esiste già, viene sostituito dal nuovo valore. -
DELETE
: rimuove l'attributo e il relativo valore se non viene specificato alcun valore perDELETE
. Il tipo di dati per il valore specificato deve corrispondere al tipo di dati del valore esistente.Se viene specificato un set di valori, tali valori saranno sottratti dal vecchio set. Ad esempio, se il valore dell'attributo era il set
[a,b,c]
e l'operazioneDELETE
specifica[a,c]
, il valore dell'attributo finale sarà[b]
. La specifica di un set vuoto restituisce un errore. -
ADD
: aggiunge il valore specificato all'elemento, se l'attributo non esiste già. Se l'attributo esiste, il comportamento diADD
dipende dal tipo di dati dell'attributo:-
Se l'attributo è un numero e anche
Value
è un numero, alloraValue
viene aggiunto matematicamente all'attributo esistente. SeValue
è un numero negativo, viene sottratto dall'attributo esistente.Nota
Se si utilizza
ADD
per aumentare o diminuire un valore numerico per un elemento che non esiste prima dell'aggiornamento, DynamoDB utilizzerà 0 come valore iniziale.Allo stesso modo, se si utilizza
ADD
per un elemento esistente per aumentare o diminuire un valore di attributo che non esiste prima dell'aggiornamento, DynamoDB utilizzerà0
come valore iniziale. Si supponga, ad esempio, che l'elemento che desideri aggiornare non abbia un attributo denominato itemcount, ma decidi comunque diADD
il numero3
a questo attributo. DynamoDB creerà l'attributo itemcount, imposterà il suo valore iniziale su0
e infine aggiungerà3
ad esso. Il risultato sarà un nuovo attributo itemcount, con un valore3
. -
Se il tipo di dati esistente è un set e se anche
Value
è un set, alloraValue
viene aggiunto al set esistente. Ad esempio, se il valore dell'attributo è il set[1,2]
e l'operazioneADD
specifica[3]
, il valore dell'attributo finale sarà[1,2,3]
. Se viene specificata un'operazioneADD
per un attributo Set e il tipo di attributo specificato non corrisponde al tipo di set esistente, si verifica un errore.Entrambi i set devono avere lo stesso tipo di dati primitivi. Ad esempio, se il tipo di dati esistente è un set di stringhe, anche
Value
deve essere un set di stringhe.
-
Se nella tabella non viene trovato alcun elemento con la chiave specificata, i valori seguenti completano le operazioni riportate:
-
PUT
: consente a DynamoDB di creare un nuovo elemento con la chiave primaria specificata e quindi aggiunge l'attributo. -
DELETE
: non succede nulla, perché gli attributi non possono essere eliminati da un elemento inesistente. L'operazione ha esito positivo, ma DynamoDB non crea un nuovo elemento. -
ADD
: fa in modo che DynamoDB crei un elemento con la chiave primaria fornita e il numero (o set di numeri) per il valore dell'attributo. Gli unici tipi di dati consentiti sono Number e Number Set.
-
Se si forniscono attributi che fanno parte di una chiave di indice, i tipi di dati per tali attributi devono corrispondere a quelli dello schema nella definizione dell'attributo della tabella.
Usa UpdateExpressioninvece: Esempio
Si supponga di voler modificare un elemento nella tabella Music. Puoi usare una UpdateItem
richiesta con un AttributeUpdates
parametro, come in questo AWS CLI esempio:
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"} } }'
Puoi invece utilizzare UpdateExpression
:
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"} }'