Oracle表序列生成

来源:互联网 发布:python数据库怎么安装 编辑:程序博客网 时间:2024/06/13 12:08


在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。
1、Create Sequence
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXvalue -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE
针对S_Depart创建的sequence如下:


Create Sequence mytable_sequence
INCREMENT BY 1   -- 每次加几个
START WITH 1
NOMAXVALUE       -- 不设置最大值  
     NOCYCLE          -- 一直累加,不循环  
     CACHE 10;


一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL
CURRVAL=返回 sequence的当前值
NEXTVAL=增加sequence的值,然后返回 sequence 值
比如:
emp_sequence.CURRVAL
emp_sequence.NEXTVAL

可以使用sequence的地方:
- 不包含子查询、snapshot、VIEW的 SELECT 语句
- INSERT语句的子查询中
- NSERT语句的valueS中
- UPDATE 的 SET中


可以看如下例子:


insert into mytable(user_id,name,dengji,admini)
values(CONCAT('user_id_',mytable_sequence.nextval),'weisg81','超级管理员','admin' );

select * from mytable for update;

Oracle支持使用CONCAT()函数进行字符串拼接


0 0
原创粉丝点击