Oracle自增序列

原创 2013年12月05日 17:02:07
 
SQL Server中数据库可以自增字段,但是Oracle中没有这个选项,实际应用中我们可以使用序列(Sequence)实现想要的功能。

创建Sequence语法如下:

CREATE SEQUENCE SEQUENCE_NAME
?        START WITH 1 --从 1 开始
       INCREMENT BY 1 --每次增加 1
       NOMAXVALUE/MAXVALUE 9999 --最大值,或无最大值
       NOMINVALUE/MINVALUE 1 --最小值,或无最小值
       CYCLE/NOCYCLE --到达最大值之后,是否循环
       CACHE/NOCACHE --指定预先在内存中存放的SEQUENCE,增加存取速度(如果数据库不正常DOWN掉,会跳号,可以用NOCACHE防止这种情况)
       ORDER; --排序?
?

序列提供的方法:
NextVal:
       NextVal是取序列的下一个值,一次NEXTVAL会增加一次sequence的值

CurrVal:
       CurrVal是取序列的当前值

例如:
       insert tablename(id) values(sequence_id.nextval); --sequence_id为序列名

注意:
       第一次NEXTVAL返回初始值,之后的NEXTVAL会自动增加定义的INCREMENT BY值并返回增加后的值。
       CURRVAL总是返回当前SEQUENCE值,在第一次NEXTVAL初始化后才可以使用CURRVAL,否则出错。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Oracle使用序列创建自增字段

  • 2012年08月15日 16:43
  • 2KB
  • 下载

oracle 主键自增(序列和触发器)

设置主键: 1、建表时指定primary key: create table test(id number(6) primary key, name varchar2(20) ); 2、如果表已...

oracle自增序列

  • 2016年05月24日 05:51
  • 152B
  • 下载

Oracle使用sequence(序列)+tirgger(触发器)实现auto_increment(主键自增)

受mysql的影响,在oracle建表的时候差点就控制不住自己的麒麟臂打下auto_increment。不过Oracle提供了一套机制也可以实现自增主键,虽然稍微麻烦点也算是殊途同归。 数据准备-测试...

sqlldr加载excel数据到oracle中,同时序列自增

目的:将windows下生成的1.xlsx文件导入oracle数据库中的ring表,表中有自增id列 一:先将1.xlsx转换成1.csv格式的excel文件,因为csv默认以逗号分隔列数据,而且使...

Oracle 使用序列创建自增字段

在Oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。 1、Create Sequence 你首先要有create sequence或者creat...

Oracle之序列(主键自增)

1.   在Oracle中完成自动增长的功能,则只能依靠序列完成,所有的自动增长操作,需要用户收工完成处理。 序列的创建格式: CREATE SEQUENCE sequence [I...

oracle如何实现自增?----用序列sequence的方法来实现

出处:http://blog.csdn.net/hu_shengyang/article/details/6266433 将表t_user的字段ID设置为自增:(用序列sequence的方法...

ORACLE中创建自增序列sequence

先假设有这么一个表: create table S_Depart  (    DepartId             INT                             no...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle自增序列
举报原因:
原因补充:

(最多只允许输入30个字)