外键约束可能会导致周期或多个级联路径 [英] Foreign Key Constraints may cause cycles or multiple cascade paths

查看:200
本文介绍了外键约束可能会导致周期或多个级联路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


可能存在重复:

外键约束可能会导致循环或多个级联路径?

在创建下面列出的表时,出现以下错误。 b
$ b

Ms 1785,Level 16,State 0,Line 1
引入表'Faculty'上的FOREIGN KEY约束'FKFacSupervisor'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。
消息1750,级别16,状态0,行1
无法创建约束。 (b

$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $' FacFirstName VARCHAR(50)CONSTRAINT FacFirstName必需NOT NULL,
FacLastName VARCHAR(50)CONSTRAINT FacLastName必需NOT NULL,
FacCity VARCHAR(50)CONSTRAINT FacCityRequired不是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)REFERENCE Faculty
ON DELETE SET NULL
ON UPDATE CASCADE


解决方案

消息告诉你在您的外键约束FKFacSupervisor不能被创建,因为这个约束可能会导致周期或多个级联路径。这意味着约束可能会导致更新或删除一行可能会导致更新或删除到另一行,这可能会导致更新或删除到第一行的情况。该消息还解释了可能的解决方案:指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他约束。只有了解架构和预期的使用模式,才能决定哪些选项是最好的。


Possible Duplicate:
Foreign key constraint may cause cycles or multiple cascade paths?

I am getting the following error while creating the table listed below.

Msg 1785, Level 16, State 0, Line 1 Introducing FOREIGN KEY constraint 'FKFacSupervisor' on table 'Faculty' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints. Msg 1750, Level 16, State 0, Line 1 Could not create constraint. See previous errors.

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
)

解决方案

The message is telling you that your foreign key constraint FKFacSupervisor cannot be created because this constraint could cause cycles or multiple cascade paths. That means that the constraint could result in a situation where updates or deletes to one row could cause updates or deletes to another row, which could in turn cause updates or deletes to the first row. The message also explains possible solutions: Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other constraints. Only by knowing the schema and the expected usage patterns can you decide which of those options will be best.

这篇关于外键约束可能会导致周期或多个级联路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆