欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

序列

程序员文章站 2022-06-23 17:39:19
序列 -- sequence 序列-- 序列是数据库的一种对象,用于生成一串不重复的编号,可以递增或递减作用:可以为表中列自动产生值由用户创建数据库对象来创建序列(sequence),并且可以由多个用户共享一般用在主键或者唯一列 1.创建序列:语法:create sequence 序列名称start ......

序列

-- sequence 序列
-- 序列是数据库的一种对象,用于生成一串不重复的编号,可以递增或递减
作用:
可以为表中列自动产生值
由用户创建数据库对象来创建序列(sequence),并且可以由多个用户共享
一般用在主键或者唯一列

1.创建序列:
语法:
create sequence 序列名称
start with 开始数字 默认是1
increment by 增长数字 默认是1
minvalue 最小值 默认是1
maxvalue 最大值 默认是1
cache 批量生成多少个序号,使用完后再生成一批,用于序列的创建优化,默认是20

例子:
create sequence myseq --创建序列名
start with 1 --从1开始
increment by 1 --每次增长1
maxvalue 999999 --最大值 //nomaxvalue(不设置最大值)
minvalue 1 --最小值
cycle --循环 //nocycle(一直累加,不循环)
nocache --不使用缓存
解释:从1开始,每次增长1,最大值999999,之后循环从1开始。

2.使用序列
-- 序列在使用时,可以使用序列的两个伪列: currval -取得序列的当前值,nextval - 获取序列的下一个值
-- 序列创建后currval是没有值的,必须先使用nextval获取下一值,这是序列才会生产一批值

create table test(id number primary key,name varchar2(32));
insert into test values(myseq.nextval,'abc');
insert into test values(myseq.nextval,'ddd');

特别说明:
1、myseq:表示序列的名字,nextval:关键字,表示从序列中取下一个值。
2、sequence序列是需要配合number类型的列来使用;
3、sequence序列是要在主键或unique列上使用的。

3. 删除序列
drop sequence seq_test;