go - 使用 Go 更新 DynamoDB 中的多个值
问题描述
我正在尝试更新 DynamoDb 表中的 value1 和 value2 项目属性,但UpdateExpression
只设置一个参数 (value1)。尝试同时包含 value1 和 value2 ( aws.String("set value1= :r, set value2= :c")
) 会导致:
Got error calling UpdateItem: %s
ValidationException: Invalid UpdateExpression: Syntax error; token: "set", near: ", set
HashValue" status code: 400, request id:******
如何更新数据库项目中的多个字段?
--
func UpdateObject(obj MyObject) (string, error) {
sess := session.Must(session.NewSessionWithOptions(session.Options{
SharedConfigState: session.SharedConfigEnable,
}))
// Create DynamoDB client
svc := dynamodb.New(sess)
// Update item in table Movies
tableName := "MyTable"
input := &dynamodb.UpdateItemInput{
ExpressionAttributeValues: map[string]*dynamodb.AttributeValue{
":r": {
N: aws.String(strconv.Itoa(obj.value1)),
},
":c": {
S: aws.String(obj.value2),
},
},
TableName: aws.String(tableName),
Key: map[string]*dynamodb.AttributeValue{
"ThreatID": {
N: aws.String(strconv.Itoa(obj.value3)),
},
"ThreatName": {
S: aws.String(obj.value4),
},
},
ReturnValues: aws.String("UPDATED_NEW"),
UpdateExpression: aws.String("set value1= :r"),
}
//........
}
--
type MyObject struct {
value3 int
value4 string
value2 string
value1 int
}
解决方案
使用此语法:
aws.String("set value1= :r, value2= :c")
参考: https ://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html
推荐阅读
- exception - dbContext 中的异常保存更改
- java - 如何远程启动docker容器
- java - 带有通配符的 Java IP 验证 RegEx *
- python-3.x - 程序运行时在后台不断更新变量
- regex - 谷歌分析目标漏斗
- javascript - 为什么我的 Mapbox GL 不能正确显示图块?
- php - 使用 require 'abc.php' 或 require('abc.php')
- php - Laravel:创建可以为空的 morphs() 关系
- java - 如何在我的 ssh 服务器上自动安装新的 jar 项目?
- python - 没有提供 argv 时如何打印错误