本地DynamoDB更新Item报错:UpdateExpression语法错误求助
问题排查与解决
你遇到的Invalid UpdateExpression: Syntax error错误,根源是UpdateExpression的语法写错了——在SET操作的赋值语句里漏掉了关键的等号=。
DynamoDB的UpdateExpression中,SET操作的标准格式是SET 属性名 = 属性值,你写的SET #ct :val缺少了中间的=,导致语法不合法,数据库无法识别这条更新指令。
修正后的代码
只需要给UpdateExpression补上等号就能解决问题:
var params = { TableName: 'Users', Key: { id: 1, }, UpdateExpression: 'SET #ct = :val', // 此处添加了等号,修正语法 ExpressionAttributeNames: { '#ct': 'city' }, ExpressionAttributeValues: { ':val': 'NewYork' }, }; docClient.update(params, function(err, data) { if (err) ppJson(err); // an error occurred else ppJson(data); // successful response });
额外小提示
- 除了SET操作,DynamoDB的其他更新操作(比如ADD、REMOVE)有各自的语法规则,但SET作为最常用的赋值操作,必须严格遵循
属性名 = 属性值的格式 - 后续写UpdateExpression时,可以先快速核对语法结构,避免这类低级但影响运行的小错误
内容的提问来源于stack exchange,提问作者orkun orbay
相关产品推荐
相关产品推荐

