【问题标题】:Is it possible to add two values in an OnConflict clause in GORM?是否可以在 GORM 的 OnConflict 子句中添加两个值?
【发布时间】:2021-05-25 06:10:30
【问题描述】:

想做类似的事情

UPDATE `items` SET `book_id`=`book_id` + ValueInUpdateRecord

在调用Create(&records)之前,在GORM中OnConflict子句的DoUpdates部分中

我可以在原始 SQL 中做到这一点没问题,但我更愿意找出困难的方法:)

【问题讨论】:

    标签: mysql go go-gorm


    【解决方案1】:

    希望这对某人有所帮助。现在我已经做到了,这是有道理的,但是试图找到关于这个主题的任何信息是一个失败的原因!这将在 mysql 中执行按位 OR 以启用特定位,但可以转换为任何类型的表达式。

    bookNumber := 32
    
    db.Clauses(clause.OnConflict{
      Columns:      []clause.Column{{Name: "id"}},
      DoUpdates:    clause.Assignments(map[string]interface{}{
        "book_id": gorm.Expr("`book_id` | " + fmt.Sprintf("%d", bookNumber))
      }),
    }).Create(&bookItems)
    

    【讨论】:

      猜你喜欢
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 2021-08-21
      • 2021-06-14
      • 2011-03-30
      • 2011-11-21
      相关资源
      最近更新 更多