AttributeUpdates(레거시) - Amazon DynamoDB

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라는 속성이 없는데, 그래도 이 속성에 숫자 3ADD하려고 한다고 가정합니다. 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"} }'

속성 업데이트에 대한 자세한 내용은 DynamoDB 테이블에서 항목 업데이트 단원을 참조하세요.