簡體   English   中英

GORM 原始 sql 未執行

[英]GORM Raw sql not getting executed

我有一個簡單的 UPDATE SQL 語句,我正在嘗試執行:

if err := gormDB.Raw("UPDATE orders SET item_id = ? WHERE client_id = ?", "item1", "client1").Error; err != nil {
    return err
}

沒有返回錯誤,但我的查詢似乎沒有在數據庫上執行。 沒有記錄任何內容,也沒有保留任何數據庫更改。

單獨調用Raw不會執行查詢。 執行操作和檢索結果的一種方法是使用Rows()方法:

if _, err := gormDB.Raw("UPDATE orders SET item_id = ? WHERE client_id = ?", "item1", "client1").Rows(); err != nil {
    return err
}
// Parse rows...

然而,在我的例子中,我不需要訪問返回的結果,所以我選擇使用Exec方法,它會立即執行給定的 SQL:

if err := gormDB.Exec("UPDATE orders SET item_id = ? WHERE client_id = ?", "item1", "client1").Error; err != nil {
    return err
}
  1. gormDB.Raw() 將返回 (tx *DB),它不會執行,一般用於查詢。
  2. 直接使用 gormDB.exec()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM