繁体   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