在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;



