首页 > 其他 > 详细

十五、序列

时间:2020-04-27 10:22:42      阅读:60      评论:0      收藏:0      [点我收藏+]

一、序列(sequence)

序列是Oracle中特有的对象, 用于生成一个自动递增的数列. 通常被用来作为主键的值.

二、 创建序列

a) 语法

create sequence seq_name

    [increment by n

    start with n

    maxvalue n|nomaxvalue // 10^27 or -1

    minvalue n|nominvalue

    cycle|nocycle

    cache n|nocache]

  • Ø increment by, 代表每次增长的步长, 默认是1, 可以是负数, 表示每次递减;
  • Ø start with, 从哪个值开始, 默认是1;
  • Ø maxvalue, 序列能到达的最大值, 默认值是nomaxvalue, 此时正数最大值是10^27, 负数最大值是-1;
  • Ø minvalue, 序列能到达的最小值, 默认值是nominvalue, 此时正数的最小值是1, 负数的最小值是-10^26;
  • Ø cycle|nocycle, 表示是否循环. 如果是cycle, 达到最大值是会重新从头开始, 如果是nocycle, 最大值后会报错.
  • Ø cache n|nocache, 表示高速缓存, 可以优化序列, 缓存的默认值是20. nocache表示没有缓存.

b) 创建学生序列

create sequence seq_student;

三、 序列的使用

3.1 nextval(序列的下一个值)

查看序列的下一个值

select seq_student.nextval from dual;

3.2 currval(序列的当前值)

查看序列的当前值

select seq_student.currval from dual;

3.3 在插入数据时使用序列

insert into student values (seq_student.nextval, ‘小红‘, ‘女‘, 19, sysdate, ‘hong@sxt.com‘, 102);

四、 删除序列

drop sequence seq_student;

五、 修改序列:alter sequence xxxx

1 alter sequence student_id -- 序列名 也可以更改
2 minvalue 1   
3 maxvalue 99999  
4 start with 1   
5 increment by 1  
6 cycle    -- 到99999后,从头开始
7 nocache;

注:

  1、如果想要改变start的值,必须 drop  sequence 再重建一个序列

  2、如果想要改变minvalue的值,必须删除序列后再重新建立序列化。不可以修改序列化的minvalue。

 

十五、序列

原文:https://www.cnblogs.com/qiaoxin11/p/12784678.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!