oracle之序列SEQUENCE
- 序列SEQUENCE是oacle提供的用于产生一系列唯一数字的数据库对象。
- 自动提供唯一的数值
- 共享对象
- 主要用于提供主键值
- 将序列值装入内存可以提高访问效率
- 序列创建
CREATE SEQUENCE emp_sequence 序列名
INCREMENT BY 1 如果省略,则默认为1,如果负值,则代表序列的值是按照此步长递减的。
START WITH 1 从1开始计数
[MINVALUE 1 [ ]只取其中一个[ ]
MAXVALUE 999999999999999] 设置最小值和最大值
[NOMAXVALUE
NOCYCLE ] 不设置最大值 , 一直累加,不循环
CACHE 20; CACHE(缓冲)定义存放序列的内存块的大小,默认为20。
- 序列修改
ALTER SEQUENCE emp_sequence 序列名
[INCREMENT BY n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];
注意:不能修改序列的初始值
- 删除序列
DROP SEQUENCE emp_sequence 序列名
- 查看序列
SELECT SEQUENCE_NAME FROM USER_SEQUENCES (查看所有序列)
SELECT COUNT(1) FROM USER_SEQUENCES U WHERE U.SEQUENCE_NAME='查询的序列名' (查看是否存在该序列)