我在将外键添加到现有表(外键可以为null)时遇到问题。
说我有一个用户表和一个数据表。数据表在用户表ID列的“ createdBy”列上已经具有有效的外键。我刚刚在数据表“ EditedBy”中添加了第二列,该列允许使用空值(这意味着数据记录尚未编辑)。因此,所有现有记录的该列的值都为NULL。
我试图在Data.EditedBy和User.Id之间创建一个外键,但是当我尝试应用它时,出现以下错误。
ALTER TABLE语句与FOREIGN KEY约束“ FK_Data_User_EditedBy”冲突。在数据库“ Test”的表“ dbo.User”的列“ Id”中发生了冲突。
数据表中的NULL值似乎有问题,但是NULL是外键可接受的值。
我想念什么?
更新:完整语句如下
USE [Test]
GO
ALTER TABLE [dbo].[Data] WITH CHECK ADD CONSTRAINT [FK_Data_User_EditedBy] FOREIGN KEY([Id])
REFERENCES [dbo].[User] ([Id])
GO
好吧,我觉得自己是个白痴。我使用Management Studio创建关系,并发布了等效的alter语句(也无效)后,我意识到我正在尝试在[data]的ID字段和的ID字段之间创建外键。 [用户]。
显然,这是行不通的。
我修复了该语句以使用[data]表中的正确字段,一切都很好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句