序列 sequence
是oracle中提供的一组能够自动增长的序号,常常用来生成每条数据的唯一标识
///数据库对象之一,独立于表存在
///主要是提供主键值
语法
create sequence 序列名
start with n 给一个初始值n,默认的初始值是1
increment by n ///增长幅度n,默认的还是1,,n为负数是递减
maxvalue n 有最大值n//nomaxvalue 没有上限
//递减的时候有最小值
minvalue n 有最小值n//nominvalue 没有下限
cycle/nocycle // 循环或者不循环
cache n/nocache /缓存n或者没有缓存 默认值20个序号
创建序列
create sequence seq_47
start with 1
increment by 2
maxvalue 100
cycle
cache 30
查看序列
当前值:currval
下一个值:nextval
select seq_47.currval from dual/第一次序列里没有值,第一次执行执行下一个值
select seq_47.nextval from dual
注意:
1.第一次使用序列的时候必须使用下一个值nextval
2.第一次使用nextval的时候返回的是初始值
序列的使用
insert into 表名 values(序列名,'列值')使用序列的时候必须使用下一个值
序列的删除
drop sequence 序列名
注意:
1.cache 不能大于循环值(最大值)
2.增长幅度必须是整数
3.缓存尽量大些