本文的主要内容包括在Oracle中实现自增型ID删除数据表中的重复记录
一自增型ID
首先创建 sequence
create sequence seqmax increment by
得到一个ID
select seqmaxnextval ID from dual
若要删除一个sequence
drop sequence seqmax;
二删除数据表中的重复记录
先创建一个表
Create TABLE APPTEST (
ID INTEGER primary key NOT NULL
MOBILE nvarchar() NOT NULL
);
假设其中手机号大量重复要删除重复记录可以有如下两种方法
()简单利用rowid删除
delete from APPTEST a where rowid not in (select max(rowid) from APPTEST b where amobile=bmobile);
据说这种方法在数据量很大时效率并不高
()利用分析函数
delete APPTEST where rowid in (
select rid from
(select rowid ridrow_number() over(partition by mobile order by id desc) rn from APPTEST )
where rn > ) ;
()做temp表