我试图在Appointments表和Center表之间的数据库中建立关系。在fk表中添加与未链接值的关系
有关系统的一个怪癖是,如果用户区域中没有中心记录,它仍然必须允许记录预约。在这种情况下,链接的centreid
将具有0值。
这意味着我得到了以下错误:
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint 'fk_appointments_centres".
我使用创建关系的代码如下:
alter table appointments
add constraint fk_appointments_centres
foreign key (centreid)
references centres(centreid)
on delete cascade
go
这是因为客户想要的功能非常重要从系统中删除中心,在这种情况下,为了妥善保存数据,如果中心被删除,它也应该删除中心的预约。
理想情况下,我希望这种关系能够正常工作,但由于中心表上的centreid列有IDENTITY_INSERT ON
,我不认为这会起作用。
我可以考虑2个其他选项,但它们并不理想,所以如果可能的话,我希望能够使其工作。
任何人都可以帮我吗?
编辑
我刚才看到的东西MSDN上如果有人建议不验证现有的数据。这似乎可以奏效,但这将如何影响数据输入? Reference here
是否有外键不能为空的原因? – devdigital