2 回答

TA貢獻1878條經(jīng)驗 獲得超4個贊
您好,歡迎來到 StackOverflow。
我想你正在使用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
然后你可以使用Clausesgorm。
此代碼將為您工作。
import (
"gorm.io/gorm"
"gorm.io/driver/mysql"
)
func main(){
db, err := gorm.Open(mysql.Open(MYSQL_CONNECTION_STRING), &gorm.Config{})
if err != nil {
fmt.Println(err.Error())
}else{
db.Clauses(clause.Insert{Modifier: "IGNORE"}).Create(&user)
}
}

TA貢獻2021條經(jīng)驗 獲得超8個贊
因為Gorm v2答案很明確: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......
- 2 回答
- 0 關(guān)注
- 129 瀏覽
添加回答
舉報