Postgresql GORM:未插入正确的值,请向上插入
我试图找到一种方法来提高一些价值观,但我得到了一些意想不到的行为。例如:Postgresql GORM:未插入正确的值,请向上插入,postgresql,go,go-gorm,Postgresql,Go,Go Gorm,我试图找到一种方法来提高一些价值观,但我得到了一些意想不到的行为。例如: db.Clauses(clause.OnConflict{ Columns: []clause.Column{{Name: "name"}}, DoUpdates: clause.AssignmentColumns([]string{"name", "email"}), }) 返回 ON CONFLICT(name)DO UPDATE SET
db.Clauses(clause.OnConflict{
Columns: []clause.Column{{Name: "name"}},
DoUpdates: clause.AssignmentColumns([]string{"name", "email"}),
})
返回
ON CONFLICT(name)DO UPDATE SET name={excluded name%!s(bool=false)},email={excluded email%!s(bool=false)}返回*
,这似乎不对
我还尝试构建一个名称和表达式的地图:
value:=map[email:excluded.email name:excluded.name col3:table.col3+excluded.col3]
db.Clauses(clause.OnConflict{
Columns: []clause.Column{{Name: "name"}},
DoUpdates: clause.Assignments(values),
})
产生
DO更新设置“email”='excluded.email',“name”='excluded.name'
但我想
DO更新设置“email”=“excluded.email”,“name”=“excluded.name”
Gorm版本:v1.20.6
Golang版本:1.12
Postgres 12遇到了类似的问题,即GORM在升级引用此关联的模型时没有更新关联表的数据(例如:在
用户
表上插入关联的账单
模型,其中账单
数据已更改,预计将随用户
的保存一起保存)
结果表明,GORM只更新生成关联/外键的字段,而不是实际数据。您需要启用
FullSaveAssociations
session选项才能更新所有字段。(请参阅和)Gorm的较新版本在Go版本低于1.13时出现一些问题。Go版本现在为1.15,请尝试升级到该版本。可能这对您的特定问题没有帮助,但最好是Gorm版本高于12。非常感谢!省去了我很多麻烦