В качестве простого фона у меня есть таблица foo
, с внешним значением nullable int bar_id
.У меня есть функция, которая удаляет ассоциацию bar
из foo
, иначе она устанавливает 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.
Что мне нужно сделать?