> 技术文档 > Oracle序列

Oracle序列


序列(Sequence)

     是一个oracle对象,表示一组连续的值,与表没有直接关系,用于实现列的自增。

     Oracle通过序列实现数值的自增长

创建序列
  • create sequence 序列名
  • [increment by n] -- 步长(步进值), 默认1
  • [start with x] -- 起始值, 默认1; 不能小于minvalue属性值
  • [minvalue y] -- 最小值, 默认1
  • [maxvalue z] -- 最大值, 默认1.0/0
  • [cache m|nocache] -- 缓存量, 默认20个, m必须大于1
  • [cycle |nocycle] -- 可循环|不可循环;

 例如:

     create sequence user_zz    
     increment by 1
     start with 1
     minvalue 1
     maxvalue 999
     nocache
     nocycle

使用序列

序列有两个属性

- currval: 序列的当前值

    若序列从未通过NEXTCAL获取过任何值, 该序列是没有当前值的

- nextval: 序列的下个值

例如:

--当序列创建完之后,开始是没有当前值currval

-- 查看序列的当前值

    select user_zz.currval from dual

--获取序列的下一个值

    select user_zz.nextval from dual;

-- 向表中插入数据时使用序列实现字段值自增长

insert into  emp (empid, name) value (user_zz.nextval, \'AAA\');

删除序列

        drop sequence 序列名