【发布时间】:2014-06-07 05:38:06
【问题描述】:
我有一个由四个表组成的数据库。关系架构如下图:
下面是行:
现在我正在尝试删除所有者 ID 为 OW1 的所有者。因为 id 是所有者表中的主键和其他表中的外键,所以它不允许我删除该行。这是我尝试过的 SQL:
delete from owners
where ownerid = 'OW1' and petid = 'PT1'
然后它返回:
ORA-02292: integrity constraint (TEST_1.ADDRESSES_OWNERS_FK) violated - child record found
而且我不允许在关系图中将删除规则设置为“CASCADE”。 请帮忙:(
【问题讨论】:
-
不能删除,因为它是pets表上PT1的外键,也是contact和address表上的外键。您需要先删除这些记录
-
能否删除所有者的联系人和地址中的条目,如 DELETE FROM contacts where ownerid = 'OW1';和 DELETE FROM 地址 where ownerid = 'OW1';?
-
@JosephB 是的,我可以。但我必须从所有者表中删除该条目。如果我可以在一个语句中删除它们,它仍然是可以接受的。我的意思是我知道我必须先删除宠物、联系人、地址中的外键,然后在所有者表中删除它,但必须在同一个语句中完成。
-
我想尝试他们提到的类似here...只是不知道如何...
-
@envyM6 你可以禁用外键约束@987654322@