Gorm:如何将整数列设置为null,并更新内存中的模型?
作为一个简单的背景,我有一个表Gorm:如何将整数列设置为null,并更新内存中的模型?,go,go-gorm,Go,Go Gorm,作为一个简单的背景,我有一个表foo,带有一个可为空的int外键bar\u id。我有一个函数可以从foo中删除bar关联,也就是将其设置为NULL 我尝试了一切:我尝试使用sql.NullInt64作为列类型,然后 foo.BarId.Valid = false // even set Int64 = 0 for good measure db.Save(&foo) // with LogMode(true) UPDATE语句中未更新条id 我试过: db.Raw("UPDATE f
foo
,带有一个可为空的int外键bar\u id
。我有一个函数可以从foo
中删除bar
关联,也就是将其设置为NULL
我尝试了一切:我尝试使用sql.NullInt64
作为列类型,然后
foo.BarId.Valid = false // even set Int64 = 0 for good measure
db.Save(&foo) // with LogMode(true)
UPDATE语句中未更新条id
我试过:
db.Raw("UPDATE foo SET bar_id = NULL WHERE id = ?", foo.ID).Row().Scan(&foo)
谢天谢地,SQL是正确的,但是对象没有更新。我认为我的gorm版本也没有错误
我尝试将Foo.BarId的类型更改为*int64
,并将指针设置为nil
,但输出查询没有将bar\u id
更改为NULL
我需要做什么?我知道了。我需要在
Select()
中特别包括该列:
db.Model(&foo).Select("bar_id").Updates(map[string]interface{}{"bar_id": nil})