可能的重复:
外键约束可能会导致循环或多级联路径? https://stackoverflow.com/questions/851625/foreign-key-constraint-may-cause-cycles-or-multiple-cascade-paths
我在创建下面列出的表时收到以下错误。
消息 1785,级别 16,状态 0,第 1 行
在表“Faculty”上引入外键约束“FKFacSupervisor”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
消息 1750,级别 16,状态 0,第 1 行
无法创建约束。请参阅以前的错误。
CREATE TABLE Faculty
(
FacNo CHAR (11),
FacFirstName VARCHAR (50)CONSTRAINT FacFirstNameRequired NOT NULL,
FacLastName VARCHAR (50) CONSTRAINT FacLastNameRequired NOT NULL,
FacCity VARCHAR (50) CONSTRAINT FacCityRequired NOT NULL,
FacState CHAR (2) CONSTRAINT FacStateRequired NOT NULL,
FacZipCode CHAR (10) CONSTRAINT FacZipCodeRequired NOT NULL,
FacHireDate DATE,
FacDept CHAR (6),
FacRank CHAR (4),
FacSalary DECIMAL (10,2),
FacSupervisor CHAR (11),
CONSTRAINT PKFaculty PRIMARY KEY (FacNo),
CONSTRAINT FKFacSupervisor FOREIGN KEY (FacSupervisor) REFERENCES Faculty
ON DELETE SET NULL
ON UPDATE CASCADE
)
该消息告诉您无法创建外键约束 FKFacSupervisor,因为此约束可能会导致循环或多个级联路径。这意味着该约束可能会导致这样一种情况:对一行的更新或删除可能会导致对另一行的更新或删除,而另一行又可能会导致对第一行的更新或删除。该消息还解释了可能的解决方案:指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他约束。只有了解架构和预期的使用模式,您才能决定哪个选项最好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)