个人理解:序列其实就是有一个内存空间存放着一个值,这个值一直在根据设置进行增减,根据名字去取序列对应的值,然后就可以用来做自增id
查看所有序列
select * from user_sequences
新建序列 (创建序列名称叫TEST_FUNCTION_SEQ的序列,从1开始,每次增加1,没有最小值;最大值为:99999999999999,不循环)
CREATE SEQUENCE TEST_FUNCTION_SEQ
START WITH 1
INCREMENT BY 1
NOMINVALUE
MAXVALUE 99999999999999
NOCYCLE
NOORDER
NOCACHE;
序列字段解释:
CREATE SEQUENCE sequenceName //创建的序列名称
[START WITH n] //开始的值,递增默认是minvalue 递减是maxvalue
[INCREMENT BY n] //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1
[{MAXVALUE n | NOMAXVALUE}] //最大值
[{MINVALUE n | NOMINVALUE}] //最小值
[{CYCLE | NOCYCLE}] //循环/不循环一直累加到最大值
[{CACHE n | NOCACHE}];//分配并存入到内存中
Cycle 循环 nocycle 不循环
Cache 缓存 //一般不采用缓存
Nextvalue 下一个
Currval 当前值
删除序列:
DROP SEQUENCE 序列名称
使用序列来写一个自增id
CREATE OR REPLACE TRIGGER 触发器名称
BEFORE INSERT ON 表名
FOR EACH ROW
BEGIN
SELECT 序列名称.nextval INTO :new.表字段 FROM dual;
END TRIGGERFUNCTION;