我在我要更新的应用程序中遇到了这个标记为"错误"的代码.在测试数据库上运行它会产生循环引用错误:
引用关系将导致不允许循环引用(Constraint name = descriptions_fk_2)
我命名约束以查看哪个引起了问题.
CREATE TABLE items (
id INT NOT NULL UNIQUE IDENTITY,
name NCHAR(100) NOT NULL UNIQUE,
PRIMARY KEY (id)
);
CREATE TABLE sources (
id INT NOT NULL UNIQUE IDENTITY,
item_id INT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (item_id)
REFERENCES items(id) ON UPDATE NO ACTION ON DELETE CASCADE
);
CREATE TABLE descriptions (
id INT NOT NULL UNIQUE IDENTITY,
item_id INT NOT NULL,
source_id INT NOT NULL,
PRIMARY KEY (id),
CONSTRAINT descriptions_fk_1 FOREIGN KEY (item_id)
REFERENCES items(id) ON UPDATE NO ACTION ON DELETE CASCADE,
CONSTRAINT descriptions_fk_2 FOREIGN KEY (source_id)
REFERENCES sources(id) ON UPDATE NO ACTION ON DELETE CASCADE
);
Run Code Online (Sandbox Code Playgroud)
为什么这是一个周期性的参考?该descriptions表链接到两个单独的表,但它们都没有链接回descriptions.
| 归档时间: |
|
| 查看次数: |
1317 次 |
| 最近记录: |