【发布时间】:2019-02-14 20:15:16
【问题描述】:
作为一个简单的背景,我有一个表foo,带有一个可为空的int 外键bar_id。我有一个函数可以从foo 中删除bar 关联,也就是将其设置为NULL。
我已经尝试了一切:我尝试使用sql.NullInt64作为列类型,然后
foo.BarId.Valid = false // even set Int64 = 0 for good measure
db.Save(&foo) // with LogMode(true)
bar_id 未在 UPDATE 语句中更新
我试过了:
db.Raw("UPDATE foo SET bar_id = NULL WHERE id = ?", foo.ID).Row().Scan(&foo)
谢天谢地,SQL 是正确的,但对象没有更新。我认为我的 gorm 版本也没有 Error。
我尝试将 Foo.BarId 的类型更改为 *int64,并将指针设置为 nil,但输出查询并未将 bar_id 更改为 NULL。
我需要做什么?
【问题讨论】: