序列是oracle提供生成一系列唯一数字的数据库对象,序列会生成顺序递增的序列号,以实现提供唯一的主键值
oracle并不占用存储空间而是在数据字典中保存它,多用于多用户的并发环境中为所有用户生成不重复的序列数字且不需要额外的i/o开销
创建序列
create sequence IMPORT_swap_card_ID_SEQ
minvalue 0
maxvalue 999999999999999999
start with 40
increment by 1
cache 20;
minvalue 最小值
maxvalue 最大值
start with 起始值 起始值无法被修改 要修改起始值只能删除重做
increment by 步长 默认为1 当步长为负数是 生成的nextval负增长
缓冲序列(是否产生序列号预分配并储存在内存中)缓冲保证了大量的请求到来时系统能做出快速的反应 但缓冲不宜过大 过大容易在发生意外情况下使序列发生不连续的情况
cycle 是否循环 (可选)当选择循环的 时候在达到最大值之后会从头开始取值 no cycle 当达到最大值再调用nextval时候报错
order 是否顺序产生 no order只能保证序列值不唯一但不保证连续
使用序列时需要用到两个伪列 nextval 和 currval nextval用于生成下一个序列值 currval用于返回当前序列值 首次引用序列时必须先调用nextval方法