DynamoDB의 PartiQL update 문 - Amazon DynamoDB

DynamoDB의 PartiQL update 문

UPDATE 문을 사용하면 Amazon DynamoDB 테이블에서 항목 내의 특성 하나 이상의 값을 수정할 수 있습니다.

참고

한 번에 하나의 항목만 업데이트할 수 있어서, 여러 항목을 업데이트하는 단일 DynamoDB PartiQL 문을 실행할 수는 없습니다. 여러 항목을 업데이트하는 방법은 DynamoDB용 PartiQL에서 트랜잭션 수행 또는 DynamoDB용 PartiQL에서 일괄 작업 실행 단원을 참조하세요.

구문

UPDATE table [SET | REMOVE] path [= data] […] WHERE condition [RETURNING returnvalues] <returnvalues> ::= [ALL OLD | MODIFIED OLD | ALL NEW | MODIFIED NEW] *

파라미터

table

(필수) 수정할 데이터가 포함된 테이블입니다.

경로

(필수) 생성하거나 수정할 속성 이름 또는 문서 경로입니다.

data

(필수) 속성 값 또는 작업의 결과입니다.

SET과 함께 사용할 수 있는 작업은 다음과 같습니다.

  • LIST_APPEND: 목록 형식에 값을 추가합니다.

  • SET_ADD: 숫자 또는 문자열 집합에 값을 추가합니다.

  • SET_DELETE: 숫자 또는 문자열 집합에서 값을 제거합니다.

condition

(필수) 수정할 항목의 선택 기준입니다. 이 조건은 단일 기본 키 값으로 확인되어야 합니다.

returnvalues

(선택 사항) 항목 속성이 업데이트되기 전이나 후에 표시되는 해당 속성을 가져오려면 returnvalues를 사용합니다. 유효한 값은 다음과 같습니다.

  • ALL OLD * - 업데이트 작업 전에 표시된 항목 속성을 모두 반환합니다.

  • MODIFIED OLD * - 업데이트 작업 전에 표시된 업데이트된 속성만 반환합니다.

  • ALL NEW * - 업데이트 작업 후에 표시되는 항목 속성을 모두 반환합니다.

  • MODIFIED NEW * - UpdateItem 작업 후에 표시되는 업데이트된 속성만 반환합니다.

반환 값

이 문은 returnvalues 파라미터를 지정하지 않는 경우 값을 반환하지 않습니다.

참고

DynamoDB 테이블의 모든 항목에 대해 UPDATE 문의 WHERE 절이 true로 평가되지 않으면 ConditionalCheckFailedException이 반환됩니다.

기존 항목의 속성 값을 업데이트합니다. 속성이 없으면 새로 생성됩니다.

다음 쿼리는 숫자 형식의 속성(AwardsWon)과 맵 형식의 속성(AwardDetail)을 추가하여 "Music" 테이블에서 항목을 업데이트합니다.

UPDATE "Music" SET AwardsWon=1 SET AwardDetail={'Grammys':[2020, 2018]} WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

RETURNING ALL OLD *를 추가하여 Update 작업 전에 있던 속성을 반환할 수 있습니다.

UPDATE "Music" SET AwardsWon=1 SET AwardDetail={'Grammys':[2020, 2018]} WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks' RETURNING ALL OLD *

그러면 다음이 반환됩니다.

{ "Items": [ { "Artist": { "S": "Acme Band" }, "SongTitle": { "S": "PartiQL Rocks" } } ] }

RETURNING ALL NEW *를 추가하여 Update 작업 후에 있던 속성을 반환할 수 있습니다.

UPDATE "Music" SET AwardsWon=1 SET AwardDetail={'Grammys':[2020, 2018]} WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks' RETURNING ALL NEW *

그러면 다음이 반환됩니다.

{ "Items": [ { "AwardDetail": { "M": { "Grammys": { "L": [ { "N": "2020" }, { "N": "2018" } ] } } }, "AwardsWon": { "N": "1" } } ] }

다음 쿼리는 AwardDetail.Grammys 목록에 추가하여 "Music" 테이블에서 항목을 업데이트합니다.

UPDATE "Music" SET AwardDetail.Grammys =list_append(AwardDetail.Grammys,[2016]) WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

다음 쿼리는 AwardDetail.Grammys 목록에서 제거하여 "Music" 테이블에서 항목을 업데이트합니다.

UPDATE "Music" REMOVE AwardDetail.Grammys[2] WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

다음 쿼리는 AwardDetail 맵에 "Music"을 추가하여 BillBoard 테이블에서 항목을 업데이트합니다.

UPDATE "Music" SET AwardDetail.BillBoard=[2020] WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

다음 쿼리는 문자열 집합 속성 BandMembers를 추가하여 "Music" 테이블에서 항목을 업데이트합니다.

UPDATE "Music" SET BandMembers =<<'member1', 'member2'>> WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

다음 쿼리는 문자열 집합 BandMembersnewbandmember를 추가하여 "Music" 테이블에서 항목을 업데이트합니다.

UPDATE "Music" SET BandMembers =set_add(BandMembers, <<'newbandmember'>>) WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'