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

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

Gorm 更新并在單個操作中獲取更新的行?

Gorm 更新并在單個操作中獲取更新的行?

Go
繁星淼淼 2023-07-17 17:10:58
有沒有辦法通過單個操作來獲取已使用 Gorm 中的更新命令更新的行。
查看完整描述

3 回答

?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個贊

我知道這已經(jīng)有一百萬年的歷史了,但為了完成,這里采用 Gorm 的方法 -子句。

????result?:=?r.Gdb.Model(&User{}).Clauses(clause.Returning{}).Where("id?=??",?"000-000-000").Updates(content)
查看完整回答
反對 回復(fù) 2023-07-17
?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個贊

它并不漂亮,但由于您使用的是 postgres,您可以執(zhí)行以下操作:


realDB := db.DB()

rows, err := realDB.Query("UPDATE some_table SET name = 'a' WHERE name = 'b' RETUNING id, name") 

//you could probably do db.Raw but I'm not sure

if err != nil {

    log.Fatal(err)

}

defer rows.Close()

for rows.Next() {

    var id int

    var name string

    err := rows.Scan(&id, &name)

    if err != nil {

        log.Fatal(err)

    }

    log.Println(id, name)

}


查看完整回答
反對 回復(fù) 2023-07-17
?
白衣非少年

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個贊

如果您知道要更新的行數(shù)相對較小(<1000),那么這是一個不錯的解決方案


var ids []int

var results []YourModel


// Get the list of rows that will be affected

db.Where("YOUR CONDITION HERE").Table("your_table").Select("id").Find(&ids)

query := db.Where("id IN (?)", ids)


// Do the update

query.Model(&YourModel{}).Updates(YourModel{field: "value"})


// Get the updated rows

query.Find(&results)

這對于競爭條件是安全的,因?yàn)樗褂?ID 列表來執(zhí)行更新而不是重復(fù)子句WHERE。正如您可以想象的那樣,當(dāng)您開始談?wù)摂?shù)千行時,這變得不太實(shí)用。


查看完整回答
反對 回復(fù) 2023-07-17
  • 3 回答
  • 0 關(guān)注
  • 328 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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