日期:2014-05-16  浏览次数:20475 次

delete语句不支持删除相连的数据表里的记录吧?
有一条信息存储在几个数据表里,希望一次删除,但是delete好像不支持数据表连接之后再删除记录。只好一个表一个表的删除,有更好的办法吗?
delete from t1 where id=xx
delete from t2 where id=xx

可以写成类似
delete from (select * from t1 inner join t2)  where id=xxx就好了,

试了一下好像不行。
------解决方案--------------------
是的。如果几个表之间有关联关系的话。可以用主外键实现级联删除。

或者可以用触发器实现。不过一般情况下不建议使用触发器。
------解决方案--------------------
如果t1和t2有主外键关联的,那么还可以通过 级联删除来实现。

如果没有主外键关联,那么只能通过一个表一个表来删除了
------解决方案--------------------
delete一次只能处理一个表,如果你要几个表一起删,要么使用级联删除,要么使用触发器