1.
序列的作用,
做主键值,
但是主键一般使用UUID
2.创建序列
语法
create sequence sequence_name
【strat with n】
【increment by n】
【maxvalue n | nomaxvalue】
【minvalue n | nominvalue】
【cycle|nocycle】
【cache n | nocache】
注意:
strat with n:
从几开始序列,
默认从1开始
如果是正数范围是0-1000000000000000000000000000 共28位
如果是负数-1~-99999999999999999999999999 26位9 一个符号-
increment by n:
指定序列步长为n
如果步长为正数,则strat with 必须为正数
如果步长为负数,则strat with 必须为负数
默认为1
maxvalue n | nomaxvalue:
指定最大值或者没有最大值
默认没有最大值,
minvalue n | nominvalue:
指定最小值或者没有最小值
默认没有最小值
cycle | nocycle:
到达最大值或者最小值之后是否循环产生序列
默认为nocycle
cache n | nocache:
预先在内存中分配多少个序列值
默认为20个值
3.使用序列
序列对象,有两个伪列
nextval:
返回下一个序列值,
初始化化序列?
currval:
返回当前序列值
首次使用currval前,需先使用nextval,否则报错(尚未在此会话定义)
刚创建currval时,序列的currval的值为null,不能直接使用
语法
sequence_name.nextval
sequence_name.currval
4.修改序列
alter sequence sequence_name
【increment by n】
【maxvalue n | nomaxvalue】
【minvalue n | nominvalue】
【cycle|nocycle】
【cache n | nocache】
注意:
对序列进行修改后只对以后的数据起作用,原有的数据不起作用
序列一旦被创建,则其起始值不允许再次修改,
即不能修改start with
5.
删除序列
语法:
drop sequence sequence_name
drop sequence book_seq;