Oracle序列

序列

概念

  • 用于产生唯一序号的数据库对象,为多个数据库用户依次生成不重复的连续整数
  • 通常用于自动生成表的主键值
  • 产生的最大数字长度 38位十进制数
  • 不占用实际物理空间
  • 数据字典中只存储序列的定义描述

创建

CREATE SEQUENCE 序列名

[INCREMENT BY n]

[START WITH n]

[{MAXVALUE/ MINVALUE n| NOMAXVALUE}]

[{CYCLE|NOCYCLE}]

[{CACHE n| NOCACHE}];

参数 作用 默认值
INCREMENT BY 从某一个数开始 升序默认1,降序默认-1
START WITH 增长数(步长) 升序默认1,降序默认-1
MAXVALUE 最大值
MINVALUE 最小值
NOMAXVALUE 最大值默认选项 升序1027,降序默认-1
CYCLE 重新开始 升序达最大值,从最小值重新开始
降序达最小值,从最大值重新开始
NOCYCLE 不重新开始 升序达最大值,降序达最小值:报错
CACHE 预生成一组序列号 默认20个序列号,保留在内存中
NOCACHE 不预生成序列号

使用

序列名.属性——调出值

  • CURRVAL:返回序列当前值
  • NEXTVAL:返回当前序列值增加一个步长后的值

可用于SELECT() \ INSERT(VALUES) \ UPDATE(SET)

修改

  • 修改限制:
    • 不能修改序列初始值
    • 最小值 <= 当前值
    • 最大值 >= 当前值

删除

DROP SEQUENCE 序列名

你可能感兴趣的:(Oracle序列)