如何解决Gorm“插入忽略”
我正在尝试在GORM中实现“插入忽略”。我尝试了Create()
,但是找不到添加Ignore
的方法。我也尝试过Clause in Gorm,
DB.Clauses(clause.Insert{Modifier: "IGNORE"}).Create(&user)`.
但是,Clauses undefined (type *"github.com/jinzhu/gorm".DB has no field or method Clauses)
出现了错误。
我也尝试使用DB.Raw()
,但是由于数据库中有很多表,我不知道每次都如何更改表。例如
DB.Raw("INSERT IGNORE INTO A/B/C/.. ... ...")`.
每次有可能插入到另一个表中时,我都会通过许多表。
我想知道是否有人在Insert Ignore
中使用过GORM。谢谢!
解决方法
嗨,欢迎来到StackOverflow。
我认为您正在使用for c in Choice:
FranceRGB.paste(c,France,box=(1,1,600,450),mask=c)
。但是您需要的代码在gorm v1
上。
首先,您必须通过在终端上运行此命令来获得gorm v2
和Gorm v2
。
MySQL dialector
然后您可以使用go get -u gorm.io/gorm // get gorm v2
go get -u gorm.io/driver/mysql // get dialector of mysql from gorm
的gorm。
此代码将为您服务。
Clauses
,
对于Gorm v2
,答案很明确:Clause in Gorm。
对于Gorm v1
,您可以在Gorm v1
的测试中找到解决方案。
参考:https://github.com/jinzhu/gorm/blob/master/create_test.go#L285
if DB.Dialect().GetName() == "mysql" && DB.Set("gorm:insert_modifier","IGNORE").Create(&user).Error != nil {
t.Error("Should ignore duplicate user insert by insert modifier:IGNORE ")
}
我多次遇到这个问题,因为我们团队的很多人仍然有很多代码使用 Gorm v1
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。