表中的自我关系导致ERROR“...循环或多个级联路径”

时间:2013-11-05 10:05:57

标签: sql-server

我已经阅读了很多关于“...循环或多路径”错误的解释。但在我看来,我有一个不同的问题,我的约束中没有循环或级联,只是设置null WHERE id_boss = id_work。

ONE TABLE:

CREATE TABLE [dbo].[Workers](
    [id_work] [int] NOT NULL,
    [id_boss] [int] NULL,
    [money] [int] NOT NULL,
 CONSTRAINT [PK_Workers] PRIMARY KEY CLUSTERED 
(
    [id_work] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

一个更多的约束:

ALTER TABLE Workers ADD CONSTRAINT FK_Boss FOREIGN KEY (id_boss) 
REFERENCES Workers (id_work) ON DELETE SET NULL

ERROR:

  

消息1785,级别16,状态0,行5引入FOREIGN KEY约束   表'工人'上的'FK_Boss'可能导致周期或多个级联   路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改   其他FOREIGN KEY约束。 Msg 1750,Level 16,State 0,Line 5   无法创建约束。查看以前的错误。

感谢您提供任何帮助或解释。 帕维尔

1 个答案:

答案 0 :(得分:0)

实际上,您无法添加链接到同一个表的外键。 这就是为什么它调用外来键 - 它应该链接到其他表。

您可以在此处阅读更多细节: http://msdn.microsoft.com/en-us/library/ms175464(v=sql.105).aspx