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

2026-02-19 19:29:42

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

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

现在使用序列让empno自增长

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

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

语法:create sequence 序列名;

create sequence test_empno;

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

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

select * from user_sequences

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

4、使用序列添加数据(这里用到序列的属性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字段就实现了自增。

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

5、创建自定义序列。

CREATE SEQUENCE test_deptno

    

    MINVALUE 10  --定义序列最小值

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

    NOMAXVALUE   ---定义序列最大值

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

   

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

    

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

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

6、清空测试表数据

delete from test;

7、向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);

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

8、删除序列

drop sequence test_empno;

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢