Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gorm:如何将整数列设置为null,并更新内存中的模型?_Go_Go Gorm - Fatal编程技术网

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})