【发布时间】:2016-07-09 02:25:27
【问题描述】:
我有两个表 NOTIF 和 PJ_GEN 定义如下:
TABLE NOTIF
==========
ID_NOTIF
COD_ONE
LIB
DATE
TABLE PJ_GEN
==========
ID_PJ
COD_TWO
LIB_TWO
此表定义了多对多关联:
PJ_BY_NOTIF
==========
ID_NOTIF
ID_PJ
我想写一个删除所有表的请求,从 NOTIF 表开始。我的基本要求是:
DELETE * FROM NOTIF WHERE DATE < ? AND COD_ONE = 3;
我怎样才能更新这个请求两个删除连接表 PJ_GEN 和 PJ_BY_NOTIF ?
PJ_BY_NOTF 有两个外键:ID_NOTIF 和 ID_PJ
解决方案:
我通过在ID_PJPJ_BY_NOTIF 的外键上添加on delete cascade 找到了一种方法
【问题讨论】:
-
请标记您正在使用的RDBMS。
-
@User3469203 您的解决方案中有一个循环存在问题......您将如何使用这种方法从 PJ_GEN 表中删除?
-
我做了两个声明:首先我从 PJ_GEN 中删除,然后从 PJ_BY_NOTIF 中删除(感谢 ON DELETE CASCADE)。然后我从 NOTIF 中删除。
标签: sql oracle11g sql-delete jointable