我们在数据库运维环境中有时会出现需删除表中重复数据的情况,比如说,导入时重复导入了,这时候我们怎么办?如何删除重复的数据,保证数据的正确性和完整性?
操作系统:中标麒麟6.0
数据库系统:DM8
我们先来创建一张测试表test
SQL>create table test(id int,name varchar(50));

手动在表test中添加重复记录
insert into test values(1,'aaa');
insert into test values(1,'aaa');
insert into test values(2,'bbb');
insert into test values(2,'bbb');
insert into test values(3,'ccc');
insert into test values(3,'ccc');
insert into test values(4,'ddd');
commit;
select * from test;

使用简单的sql语句删除重复记录多余部分只保留一条
delete from test a
where
(a.id,a.name) in(select id,name from test group by id,name having count(*) > 1)
and rowid not in (select min(rowid) from test group by id,name having count(*)>1);
commit;

执行完成,我们commit提交一下。然后我们再去看看test表里面的重复数据是不是都删除了呢?

果然!重复数据都删除了,
在数据库运维中,可能会遇到需删除表中重复数据的情况。本文以中标麒麟6.0操作系统和DM8数据库系统为例,创建测试表test并添加重复记录,然后使用简单SQL语句删除重复记录多余部分,只保留一条,最后提交操作,成功删除重复数据。
2523






