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

oracle表关联删除重复记录

有两个表A、B,B为A的历史表,即A中的数据会隔段时间会转移到B中,要求A和B中的数据不能重复。但是现在存在几条记录,即在A中也在B中,要将重复的数据从A表中删除,id为A,B的主键,解决方法如下:

?

--查看两个表的重复记录

Select A.* from A , B where A.id=B.id

?

--A表中删除两个表的重复记录

?

Delete from A where exists (select 1 from B where A.id=B.id)

?

注:oracle是不支持delete _a from a _a, b _b where _a.id=_b.id这种类似关联用法的。