oracle之序列
序列
15.1 序列是生成唯一整数值的结构,它的典型用途是用于主键值。
结合真题演示
伪列nextval, currval用法
CREATE SEQUENCE dept_deptno
INCREMENT BY 10
START WITH 50
MAXVALUE 100
CYCLE
NOCACHE
第一次要引用一下 nextval伪列
select dept_deptno.nextval from dual;
以后就有currval伪列值了。
select dept_deptno.nextval from dual;
15.2 几点说明:
1)最简单的建立序列只需要create sequence 序列名就可以,注意缺省值,起始是1,步长也是1。
2) 如果启用cache,缺省只有20个号,经验表明这个数量会不够,可以设置多一些,根据需要10000个也可以。
3)cycle其实没有什么意义,因为它使序列发出重复值,这对于基于序列是主键值的用法是个问题。
4) 创建序列后可以使用alter命令再进行修改。alter命令和create命令基本相同,只有一点区别:alter命令不能设置起始值。如果要重启该序列,唯一的办法是删除并重新创建它。
5)循环后初始是从1开始的, 不管原来的值是如何设的(考点)。