当前位置: 首页 > 图文教程 > 数据库 > Oracle > Oracle实现自增型ID和删除重复记录

Oracle
Oracle Tuning技巧总结
如何选择Oracle优化器
如何使用Logmnr方法分析数据库日志
保持Oracle数据优良性能的若干诀窍
Oracle 10g R2ORA-3136 错误解决
Oracle中行迁移和行链接的清除及检测
不要忽视Oracle 10g STATSPACK
ORACLE性能调整--统计信息的迁移
用Oracle TimesTen加速Oracle数据库
在Oracle 10g中如何获得索引建议
Oracle中的SQL语句性能调整原则
Oracle Spatial新驱动的添加记录实例
在Linux系统下如何优化Oracle具体步骤
Oracle数据库删除两表中相同数据的方法
Oracle 容灾复制解决方案分析Shar Plex
oltp系统,数据块大小用4k还是8k好?
数据库中如何使用SQL查询连续号码段
在数据字典中直接修改表列的名称和顺序
讲解Oracle里抽取随机数的多种方法
使用一条SQL语句删除表中重复记录

Oracle实现自增型ID和删除重复记录


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 49 ::
收藏到网摘: n/a

本文的主要内容包括:在Oracle中实现自增型ID,删除数据表中的重复记录。

一.自增型ID

1.首先创建 sequence

create sequence seqmax increment by 1

2.得到一个ID

select seqmax.nextval ID from dual

3.若要删除一个sequence

drop sequence seqmax;

二.删除数据表中的重复记录

1.先创建一个表

Create TABLE "APPTEST" (

"ID" INTEGER primary key NOT NULL,

"MOBILE" nvarchar2(50) NOT NULL

);

2.假设其中手机号大量重复,要删除重复记录,可以有如下两种方法:

(1)简单利用rowid删除

delete from APPTEST a where rowid not in (select max(rowid) from APPTEST b where a.mobile=b.mobile);

据说,这种方法在数据量很大时,效率并不高

(2)利用分析函数

delete APPTEST where rowid in (

select rid from

(select rowid rid,row_number() over(partition by mobile order by id desc) rn from APPTEST )

where rn > 1) ;

(3)做temp表