您的位置首页百科知识

在oracle中如何使用序列(sequence)

在oracle中如何使用序列(sequence)

的有关信息介绍如下:

在oracle中如何使用序列(sequence)

在后端开发中,有时候需要将某个字段的值实现自增列,那么这时候如何使用oracle快速实现呢,下面来认识一下sequence。

首先创建一个测试表test(这里取得是emp表中的三列,数据为空)。

create table test as select t.empno ,t.ename,t.deptno from emp t。

现在使用序列让empno自增长

创建一个序列(属性默认)。

语法:create sequence 序列名;

create sequence test_empno;

在用户字典中查看创建的序列(所有创建的序列对象都在用户字典中存放,里面存有序列名称、序列最小值、序列最大值,步长等信息)

select * from user_sequences

使用序列添加数据(这里用到序列的属性nextval)使用时

语法:序列对象.nextval

insert into test(empno,ename,deptno)values(test_empno.nextval,'张三',10);

insert into test(empno,ename,deptno)values(test_empno.nextval,'肖九',10);

insert into test(empno,ename,deptno)values(test_empno.nextval,'李四',10);

insert into test(empno,ename,deptno)values(test_empno.nextval,'王五',10);

insert into test(empno,ename,deptno)values(test_empno.nextval,'赵六',10);

insert into test(empno,ename,deptno)values(test_empno.nextval,'田七',10);

insert into test(empno,ename,deptno)values(test_empno.nextval,'钱八',10);

此时empno字段就实现了自增。

创建自定义序列。

CREATE SEQUENCE test_deptno

MINVALUE 10 --定义序列最小值

START WITH 10 ---定义序列开始值

NOMAXVALUE ---定义序列最大值

INCREMENT BY 10 ---定义序列步长

NOCYCLE ---定义当序列增长到最大值或者减小到最小值,从新从开始值继续

CACHE 30 ---是否产生序列号预分配,并存储在内存中

清空测试表数据

delete from test;

向test表中添加新数据(实现empno自增,deptno间隔10增长)

insert into test(empno,ename,deptno)values(test_empno.nextval,'张一',test_deptno.nextval);

insert into test(empno,ename,deptno)values(test_empno.nextval,'张二',test_deptno.nextval);

insert into test(empno,ename,deptno)values(test_empno.nextval,'张三',test_deptno.nextval);

insert into test(empno,ename,deptno)values(test_empno.nextval,'张四',test_deptno.nextval);

insert into test(empno,ename,deptno)values(test_empno.nextval,'张五',test_deptno.nextval);

insert into test(empno,ename,deptno)values(test_empno.nextval,'张六',test_deptno.nextval);

删除序列

drop sequence test_empno;