外键为零(而不是null),导致go gorm在MySQL中出现错误1452

外键为零(而不是null),导致go gorm在MySQL中出现错误1452,mysql,go,go-gorm,Mysql,Go,Go Gorm,所以我有两个表,它们是零对多的关系。(每个文件最多可以有1个用户) 类型用户结构{ 戈姆模型 } 及 类型文件结构{ 戈姆模型 UserID int`gorm:“默认值:null”` User`gorm:“约束:OnUpdate:CASCADE,OnDelete:SET NULL;foreignKey:UserID”` } 现在,在MySQL中(SQLite不会出现此问题),如果没有创建用户,并且使用空用户更新文件,则会出现以下错误: Error 1452: Cannot add or up

所以我有两个表,它们是零对多的关系。(每个
文件
最多可以有1个
用户

类型用户结构{
戈姆模型
}

类型文件结构{
戈姆模型
UserID int`gorm:“默认值:null”`
User`gorm:“约束:OnUpdate:CASCADE,OnDelete:SET NULL;foreignKey:UserID”`
}
现在,在MySQL中(SQLite不会出现此问题),如果没有创建用户,并且使用空用户更新文件,则会出现以下错误:

Error 1452: Cannot add or update a child row: a foreign key constraint fails (`DB`.`files`, CONSTRAINT `fk_files_creator` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE)
UPDATE `files` SET `user_id`=0,`deleted_at`=NULL WHERE `id` = 5
这是因为它试图将“0”添加为
user\u id
,而该值应为
NULL
。像这样:

UPDATE`files`SET`user\u id`=NULL,`deleted\u at`=NULL,其中`id`=5

我通过使用
default:null
成功地解决了这个问题,但是你知道如何在更新时也这么做吗?谢谢