For the UpdateItem operation, represents the attributes to be modified, the action to perform on each, and the new value for each.
You cannot use UpdateItem to update any primary key attributes. Instead, you will need to delete the item, and then use PutItem to create a new item with new attributes.
Attribute values cannot be null; string and binary type attributes must have lengths greater than zero; and set type attributes must not be empty. Requests with empty values will be rejected with a ValidationException exception.
In the following list, the required parameters are described first.
Specifies how to perform the update. Valid values are
ADD. The behavior depends on whether the specified primary key already exists
in the table.
If an item with the specified Key is found in the table:
PUT - Adds the specified attribute to the item. If the attribute already
exists, it is replaced by the new value.
DELETE - If no value is specified, the attribute and its value are removed
from the item. The data type of the specified value must match the existing value's data
If a set of values is specified, then those values are subtracted from the old
set. For example, if the attribute value was the set
[a,b,c] and the
DELETE action specified
[a,c], then the final attribute value would
[b]. Specifying an empty set is an error.
ADD - If the attribute does not already exist, then the attribute and its
values are added to the item. If the attribute does exist, then the behavior of
ADD depends on the data type of the attribute:
If the existing attribute is a number, and if Value is also a number, then the Value is mathematically added to the existing attribute. If Value is a negative number, then it is subtracted from the existing attribute.
If you use
ADD to increment or decrement a number value for an item
that doesn't exist before the update, DynamoDB uses 0 as the initial value.
In addition, if you use
ADD to update an existing item, and intend to
increment or decrement an attribute value which does not yet exist, DynamoDB uses
0 as the initial value. For example, suppose that the item you want
to update does not yet have an attribute named itemcount, but you decide to
ADD the number
3 to this attribute anyway, even though
it currently does not exist. DynamoDB will create the itemcount attribute, set
its initial value to
0, and finally add
3 to it. The
result will be a new itemcount attribute in the item, with a value of
If the existing data type is a set, and if the Value is also a set, then the
Value is added to the existing set. (This is a set operation, not
mathematical addition.) For example, if the attribute value was the set
[1,2], and the
ADD action specified
the final attribute value would be
[1,2,3]. An error occurs if an Add
action is specified for a set attribute and the attribute type specified does not
match the existing set type.
Both sets must have the same primitive data type. For example, if the existing data type is a set of strings, the Value must also be a set of strings. The same holds true for number sets and binary sets.
This action is only valid for an existing attribute whose data type is number or is a
set. Do not use
ADD for any other data types.
If no item with the specified Key is found:
PUT - DynamoDB creates a new item with the specified primary key, and then adds
DELETE - Nothing happens; there is no attribute to delete.
ADD - DynamoDB creates an item with the supplied primary key and number (or set
of numbers) for the attribute value. The only data types allowed are number and number
set; no other data types can be specified.
ADD | PUT | DELETE
Represents the data for an attribute. You can set one, and only one, of the elements.
Each attribute in an item is a name-value pair. An attribute can be single-valued or multi-valued set. For example, a book item can have title and authors attributes. Each book has one title but can have many authors. The multi-valued attribute is a set; duplicate values are not allowed.
Type: AttributeValue object