删除oracle表中的完全重复数据

时间:2024-01-13 18:55:44

今天数据库除了个问题:项目中的一张表,数据是从另外一个系统中相同的表里弄过来的,但是可能由于昨天同事导数据导致我这张表中的数据出现了完全相同的情况(所有字段),全部是两条,需要删除相同的数据.

做法:1.创建中间表,

   2.将原表中的不重复数据放入中间表,

   3.删除原表数据

   4.将中间表数据放入原表

   5.删除中间表

--创建中间表
CREATE TABLE ATT_SCATTER_REQ_NUM_TEMP AS (SELECT distinct * FROM ATT_SCATTER_REQ_NUM); --核对是否将不含重复数据的数据插入中间表
select count(1) from ATT_SCATTER_REQ_NUM_TEMP; --删除原表中的所有数据
delete from ATT_SCATTER_REQ_NUM; ---将中间表的数据插入原表
insert into ATT_SCATTER_REQ_NUM select * from ATT_SCATTER_REQ_NUM_TEMP; --数据是否正确
select count(1) from ATT_SCATTER_REQ_NUM NUM;

由于这是对全部数据的操作,所以要谨慎,每一步都要确保没有问题.