当前位置: 代码迷 >> DB2 >> 怎的通过主表删除子表数据
  详细解决方案

怎的通过主表删除子表数据

热度:8211   发布时间:2013-02-26 00:00:00.0
怎样通过主表删除子表数据。
主表和子表有几个关联key。
首先我根据一定的条件用select在主表里查出一个结果集。
然后根据这个查询结果循环,根据结果集里的关联key,用delete语句一条一条的删除子表数据。
这样做实在太慢了。我记得可以一个SQL文搞定的,但是我记不大清了。
我记得以前做过select-insert一句搞定的,但是select-delete不知道可以吗?
------解决方案--------------------------------------------------------
建表时候设置接连删除的
或者自己写触发器
------解决方案--------------------------------------------------------
如果建表时设置级联删除,删除主表记录就会删除相应子表记录
在主表的TRIGGER中删除相应子表记录
------解决方案--------------------------------------------------------
select-delete 这个不行,可以通过触发器去实现。
------解决方案--------------------------------------------------------
delete from table where id in (select id form table)
你说的是这种吧。
------解决方案--------------------------------------------------------
自己解决更好,不过用级联删除保证完整性比较简单
------解决方案--------------------------------------------------------
引用
delete from table where id in (select id form table)
这个比较常见。
  相关解决方案