AttributeUpdates(레거시)
참고
가능하면 이러한 레거시 파라미터 대신 새 표현식 파라미터를 사용하는 것이 좋습니다. 자세한 내용은 DynamoDB에서 표현식 사용 단원을 참조하십시오. 이 파라미터를 대체하는 새 파라미터에 대한 자세한 내용은 대신 UpdateExpression을 사용합니다. 섹션을 참조하세요.
UpdateItem
작업에서, 레거시 조건 파라미터 AttributeUpdates
에는 수정할 속성 이름, 각각에서 수행할 작업, 각각의 새 값이 포함되어 있습니다. 해당 테이블의 인덱스에 대한 인덱스 키 속성인 속성을 업데이트하는 경우, 속성 유형이 표 설명의 AttributesDefinition
에 정의되어 있는 인덱스 키 유형과 일치해야 합니다. UpdateItem
을 사용하여 다른 키가 아닌 속성을 업데이트할 수 있습니다.
속성 값은 null이 될 수 없습니다. 문자열과 이진 형식 속성 길이는 0보다 커야 합니다. 설정 유형 속성은 비어 있으면 안 됩니다. 값이 비어 있는 요청은 ValidationException
예외로 거부됩니다.
각 AttributeUpdates
요소는 수정할 속성 이름 및 다음 파라미터로 구성됩니다.
-
Value
- 이 속성의 새 값(해당되는 경우)입니다. -
Action
- 업데이트 수행 방법을 지정하는 값입니다. 이 작업은 데이터 유형이 숫자이거나 집합인 기존 속성에 대해서만 유효하므로, 다른 데이터 유형에는ADD
를 사용하지 마십시오.지정된 기본 키를 가진 항목이 테이블에 없으면, 다음 값이 다음 작업을 수행합니다.
-
PUT
- 지정된 속성을 항목에 추가합니다. 속성이 이미 있는 경우 새 값으로 바뀝니다. -
DELETE
-DELETE
에 대해 지정된 값이 없는 경우, 속성과 해당 값을 제거합니다. 지정된 값의 데이터 유형은 기존 값의 데이터 유형과 일치해야 합니다.값 세트가 지정된 경우 해당 값이 이전 세트에서 제거됩니다. 예를 들어, 속성 값이 세트
[a,b,c]
이고DELETE
작업이[a,c]
를 지정하면, 최종 속성 값은[b]
가 됩니다. 빈 세트를 지정하면 오류가 발생합니다. -
ADD
- 속성이 아직 없으면 지정된 값을 항목에 추가합니다. 속성이 있으면ADD
의 동작은 속성의 데이터 형식에 따라 달라집니다.-
기존 속성이 숫자이고
Value
도 숫자이면Value
가 산술적으로 기존 속성에 추가됩니다.Value
가 음수이면 기존 속성에서 차감됩니다.참고
ADD
를 사용하여 업데이트 전에는 존재하지 않은 항목의 숫자 값을 증가 또는 감소시키는 경우, DynamoDB는 초기 값으로 0을 사용합니다.마찬가지로,
ADD
를 사용하여 업데이트 전에는 존재하지 않은 속성 값을 증가 또는 감소시키는 경우, DynamoDB는 초기 값으로0
을 사용합니다. 예를 들어, 업데이트하려는 항목에 itemcount라는 속성이 없는데, 그래도 이 속성에 숫자3
을ADD
하려고 한다고 가정합니다. DynamoDB는 itemcount 속성을 만들고, 초기 값을0
으로 설정하고, 마지막으로3
을 더합니다. 결과는 새로운 itemcount 속성이 되며, 그 값은3
이 됩니다. -
기존 데이터 형식이 세트이고
Value
도 세트이면Value
가 기존 세트에 추가됩니다. 예를 들어, 속성 값이 세트[1,2]
이고ADD
작업이[3]
을 지정하면, 최종 속성 값은[1,2,3]
이 됩니다. 세트 속성에 대한ADD
작업이 지정되어 있으며 지정된 속성 유형이 기존 세트 유형과 일치하지 않는 경우 오류가 발생합니다.두 세트의 프리미티브 데이터 형식이 동일해야 합니다. 예를 들어, 기존 데이터 형식이 문자열 세트인 경우
Value
도 문자열 세트여야 합니다.
-
지정된 키를 가진 항목이 테이블에 없으면, 다음 값이 다음 작업을 수행합니다.
-
PUT
- DynamoDB가 지정된 기본 키를 사용하여 새 항목을 만든 다음, 속성을 추가합니다. -
DELETE
- 존재하지 않는 항목에서는 속성을 삭제할 수 없으므로 아무 변화가 없습니다. 작업은 성공하지만 DynamoDB가 새 항목을 만들지 않습니다. -
ADD
- DynamoDB가 속성 값에 대해 제공된 기본 키와 숫자(또는 숫자 세트)로 항목을 만듭니다. 허용되는 유일한 데이터 형식은 숫자 및 숫자 집합입니다.
-
인덱스 키의 일부인 속성을 제공하는 경우, 해당 속성의 데이터 형식이 표 속성 설명에 있는 스키마의 데이터 형식과 일치해야 합니다.
대신 UpdateExpression 사용 - 예
Music 테이블의 항목을 수정하려고 한다고 가정합니다. 다음 AWS CLI 예제에서와 같이 UpdateItem
요청을 AttributeUpdates
파라미터와 함께 사용할 수 있습니다.
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"} } }'
대신에 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"} }'