第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

戈姆“插入忽略”

戈姆“插入忽略”

Go
達令說 2022-06-27 09:32:09
我正在嘗試在 GORM 中實現(xiàn)“插入忽略”。我試過Create()了,但我找不到添加Ignore. 我也試過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(),但我不知道每次如何更改表,因為我的數(shù)據(jù)庫中有很多表。例如DB.Raw("INSERT IGNORE INTO A/B/C/.. ... ...")`.我有很多表會通過這個函數(shù),每次我可能會插入到不同的表中。我想知道是否有人有Insert IgnoreGORM 的經(jīng)驗。謝謝!
查看完整描述

2 回答

?
UYOU

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)

    }

}


查看完整回答
反對 回復(fù) 2022-06-27
?
寶慕林4294392

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......


查看完整回答
反對 回復(fù) 2022-06-27
  • 2 回答
  • 0 關(guān)注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號