日期:2014-05-17  浏览次数:20684 次

关于两个数据库中删除数据的问题
遇到了一个这样的问题,有两个数据库A,B。分别有两个表a,b。这连个表中一个字段tid相等,且唯一,但是tid不是主键。
当我向表a中插入500条数据的时候,b中相应的也插入了500条。在删除的时候我遇到了困难,当删除a表中的全部内容的时候,需要将b表中的对应tid值相等的数据全部删除。
我开始的想法是:在对a表删除全部数据之前,将他的tid全部查询出来,然后存在list中,将list中的数据传到b表操作中,使用delete...in(list中的数据)语句删除,但是当数据量大的时候 超出了list的行数,所以希望大家帮忙,给我点提示,怎么实现,最好是执行速度不要太慢。


------解决方案--------------------
你的list应该是存放的是tid,那这样的话,你就遍历list进行拼装sql语句,不断的增加in后面的数据

当然这个我是按照你的思路改进的。
------解决方案--------------------
探讨
用trigger吧多简单。

还有,是在java端删除还是sql客户端里直接删,
java端删除的话,直接写两条sql语句就可以了啊,

delete from a where tid in (XXXXXX);
delete from b where tid in (XXXXXX);