当我在列smuId
列的数据库中显式插入空值时,这是一个有趣的问题:
INSERT [tblTyreHistory]
(
[changetype], [datechanged], [fitterid],[isfitted],
[position], [reason],[MachineId], [rimid], [tyreid], [userid], [smuId]
)
VALUES (1,'2014-05-19 00:00:00',86,1,1,NULL,95,NULL,5699,86,NULL)
插入按预期工作。但是,如果我从插入中省略了列smuId
,我会得到一个外键约束:
INSERT [tblTyreHistory]
(
[changetype], [datechanged], [fitterid],[isfitted],
[position], [reason],[MachineId], [rimid], [tyreid], [userid]
)
VALUES (1,'2014-05-19 00:00:00',86,1,1,NULL,95,NULL,5699,86)
这导致了问题:
INSERT语句与FOREIGN KEY约束“FK_tblTyreHistory_tblSmu”冲突。冲突发生在数据库“myDB”,表“dbo.tblSmutable”,列'id'。
有没有人有任何想法?
答案 0 :(得分:4)
可能是否有为smbId列指定的默认值,而tblSmutable中没有该值?这将导致smudd使用默认值而不是NULL进行填充,并且会出错。