我有 3 张桌子:A、B、C。
- 表 A 包含以下属性: a(主键)
- 表B包含属性:a,c(它们都组成一个复合主键)
- 表 C 包含属性: c(主键)
当我删除 A 中的条目时,我应该如何设置约束以在级联上删除 B 的元素?(使用 Oracle DBMS)。
我试过这个:
ALTER TABLE A ADD CONSTRAINT constraint FOREIGN KEY (a) REFERENCES B (a) ON DELETE CASCADE
但是会抛出下一个错误:
ORA-02270: no matching unique or primary key for this column-list
谢谢
编辑:
我在表 B 中添加了两个外键:
ALTER TABLE B ADD CONSTRAINT FOREIGN KEY (a) REFERENCES A (a) ON DELETE CASCADE
ALTER TABLE B ADD CONSTRAINT FOREIGN KEY (c) REFERENCES C (c) ON DELETE CASCADE
然后,我将删除表 B 中的元素,同时删除 A 和 C 中的条目。