我已经手动编码了一个数据库模式(下面显示了其中的一部分):
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
引发该错误的表。似乎在ResidentialAddress
和PostalAddress
表中都引用了相同的表。
此处有关于此错误的MS知识库文章:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句