cam*_*eck 6 ruby amazon-web-services amazon-dynamodb
根据AWS文档:
更新表达式由一个或多个子句组成.每个子句都以SET,REMOVE,ADD或DELETE关键字开头.您可以按任何顺序在更新表达式中包含这些子句中的任何子句.但是,每个操作关键字只能出现一次.
我遇到了麻烦的语法正确的SET,并REMOVE在一个update_expression:
params = {
key: {
'id' => { s: '123' }
},
table_name: 'customers'
expression_attribute_names: {
'#ADR' => 'address'
'#ON' => 'order_num'
},
expression_attribute_values: {
':a' => { s: '123 Main St' }
},
update_expression: 'REMOVE #ON, SET #ADR = :a',
}
dynamodb = Aws::DynamoDB::Client.new(region: 'us-east-1',
simple_attributes: false)
dynamodb.update_item(params)
Run Code Online (Sandbox Code Playgroud)
我也尝试过以下方法:
update_expression: 'SET #ADR = :a, REMOVE #ON' => Invalid UpdateExpression: Syntax error; token: "REMOVE", near: ", REMOVE #ON" (Aws::DynamoDB::Errors::ValidationException)
update_expression: ['SET #ADR = :a', 'REMOVE #ON'] => expected params[:update_expression] to be a String, got value ['SET #ADR = :a', 'REMOVE #ON'] (class: Array) instead. (ArgumentError)
Run Code Online (Sandbox Code Playgroud)
谁能指出我正确的文档?
cam*_*eck 13
我让它变得太复杂了.
这就是答案:
update_expression: 'SET #ADR = :a REMOVE #ON'
Run Code Online (Sandbox Code Playgroud)
除了Clause关键字之外,不需要分隔符.
| 归档时间: |
|
| 查看次数: |
1083 次 |
| 最近记录: |