我在将外键添加到外键可以为null的现有表时遇到问题。
假设我有一个用户表和一个数据表。数据表已经在" createdBy"上创建了一个可用的外键。 colum到用户表ID列。我刚刚在数据表中添加了第二列" EditedBy"允许空值(意味着数据记录未被编辑)。因此,所有现有记录都将NULL作为此列的值。
我正在尝试在Data.EditedBy和User.Id之间创建一个外键,但是当我尝试应用它时,我收到以下错误。
ALTER TABLE语句与FOREIGN KEY约束冲突" FK_Data_User_EditedBy"。冲突发生在数据库"测试",表" 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
答案 0 :(得分:0)
显然不会工作。
我修改了语句以使用[data]表中的正确字段,一切都很顺利。