DynamoDB API에서는 UpdateItem
작업을 사용하여 단일 항목을 수정합니다.
{
TableName: "Music",
Key: {
"Artist":"No One You Know",
"SongTitle":"Call Me Today"
},
UpdateExpression: "SET RecordLabel = :label",
ExpressionAttributeValues: {
":label": "Global Records"
}
}
수정할 항목의 Key
속성과 속성 값을 지정하는 UpdateExpression
을 지정해야 합니다. UpdateItem
은 'upsert' 작업처럼 동작합니다. 즉 항목이 테이블에 존재하면 업데이트되지만 그렇지 않으면 새 항목이 추가(삽입)됩니다.
UpdateItem
은 조건부 쓰기를 지원하는데, 특정 ConditionExpression
이 true로 평가되는 경우에 한해 작업이 성공합니다. 예를 들어, 다음 UpdateItem
작업은 노래의 가격이 2.00 이상이 아니면 업데이트를 수행하지 않습니다.
{
TableName: "Music",
Key: {
"Artist":"No One You Know",
"SongTitle":"Call Me Today"
},
UpdateExpression: "SET RecordLabel = :label",
ConditionExpression: "Price >= :p",
ExpressionAttributeValues: {
":label": "Global Records",
":p": 2.00
}
}
UpdateItem
은 원자성 카운터 즉, 증가하거나 감소할 수 있는 Number
형식의 속성도 지원합니다. 원자성 카운터는 여러 가지 면에서 SQL 데이터베이스의 시퀀스 발생기, 자격 증명 열 또는 자동 증분 필드와 유사합니다.
다음은 UpdateItem
작업을 통해 새 속성(Plays)을 초기화하여 노래가 재생된 횟수를 추적하는 예제입니다.
{
TableName: "Music",
Key: {
"Artist":"No One You Know",
"SongTitle":"Call Me Today"
},
UpdateExpression: "SET Plays = :val",
ExpressionAttributeValues: {
":val": 0
},
ReturnValues: "UPDATED_NEW"
}
ReturnValues
파라미터는 업데이트된 속성의 새 값을 반환하는 UPDATED_NEW
로 설정됩니다. 이 경우에는 0을 반환합니다.
누군가가 이 노래를 재생할 때마다 다음 UpdateItem
작업을 사용하여 Plays를 1씩 증가시킬 수 있습니다.
{
TableName: "Music",
Key: {
"Artist":"No One You Know",
"SongTitle":"Call Me Today"
},
UpdateExpression: "SET Plays = Plays + :incr",
ExpressionAttributeValues: {
":incr": 1
},
ReturnValues: "UPDATED_NEW"
}
PartiQL에서는 PartiQL Update
문을 사용하여 ExecuteStatement
작업을 통해 테이블의 항목을 수정합니다.
이 테이블의 기본 키는 Artist 및 SongTitle로 구성됩니다. 이 속성들의 값을 지정해야 합니다.
UPDATE Music
SET RecordLabel ='Global Records'
WHERE Artist='No One You Know' AND SongTitle='Call Me Today'
다음 예와 같이 여러 필드를 한 번에 수정할 수도 있습니다.
UPDATE Music
SET RecordLabel = 'Global Records'
SET AwardsWon = 10
WHERE Artist ='No One You Know' AND SongTitle='Call Me Today'
Update
은 원자성 카운터 즉, 증가하거나 감소할 수 있는 Number
형식의 속성도 지원합니다. 원자성 카운터는 여러 가지 면에서 SQL 데이터베이스의 시퀀스 발생기, 자격 증명 열 또는 자동 증분 필드와 유사합니다.
다음은 Update
문을 통해 새 속성(Plays)을 초기화하여 노래가 재생된 횟수를 추적하는 예제입니다.
UPDATE Music
SET Plays = 0
WHERE Artist='No One You Know' AND SongTitle='Call Me Today'
누군가가 이 노래를 재생할 때마다 다음 Update
문을 사용하여 Plays를 1씩 증가시킬 수 있습니다.
UPDATE Music
SET Plays = Plays + 1
WHERE Artist='No One You Know' AND SongTitle='Call Me Today'