在表“ Employer”上引入FOREIGN KEY约束“ FK__Employer__postal__59FA5E80”可能会导致循环或多个级联路径

孔雀

我已经手动编码了一个数据库模式(下面显示了其中的一部分):

CREATE TABLE Employer 
(
   id INTEGER NOT NULL PRIMARY KEY,
   industry_sector_id INTEGER 
      REFERENCES IndustrySector(id) ON UPDATE CASCADE ON DELETE NO ACTION,
   name VARCHAR(256) NOT NULL,
   legal_entity_type_id INTEGER 
      REFERENCES LegalEntityType(id) ON UPDATE CASCADE ON DELETE NO ACTION,
   size_category_id INTEGER 
      REFERENCES EmployerStaffSizeCategory(id) ON UPDATE CASCADE ON DELETE NO ACTION,
   location_address INTEGER 
      REFERENCES ResidentialAddress(id) ON UPDATE CASCADE ON DELETE NO ACTION,
   postal_address INTEGER 
      REFERENCES PostalAddress(id) ON UPDATE CASCADE ON DELETE NO ACTION
);

CREATE UNIQUE INDEX idxu_employer_name ON Employer(name);
CREATE INDEX idx_employer_industry ON Employer(industry_sector_id);

当我在SSMS中执行查询时,出现以下错误消息:

消息1785,级别16,状态0,第714
行在表“雇主”上引入外键约束'FK__Employer__postal__59FA5E80'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。
消息1750,级别16,状态0,行714
无法创建约束。请参阅先前的错误。

我看不到SQL语句有什么问题(它在PostgreSQL上工作正常[并且对于mySQL也做了些微修改])。谁能指出导致我收到错误消息的原因-我的意思是哪个FK引起了冲突,为什么?

院长

是FK引用了PostalAddress引发该错误表。似乎在ResidentialAddressPostalAddress表中都引用了相同的表。

此处有关于此错误的MS知识库文章:

http://support.microsoft.com/kb/321843

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章