简介
- 序列是用于生成唯一的,连续号的对象
- 序列可以是升序的,也可以是降序的
- 使用
create sequence
语句创建序列
create sequence toys_seq
start with 10
increment by 10
maxvalue 2000
minvalue 10
nocycle
cache 10;
start with
:起始位置
increment by
:每次递增
maxvalue
: 最大值
minvalue
:最小值
nocycle
:是否循环使用
cache
:缓存,预先分配的
使用序列:
- 通过序列的伪劣来访问序列的值
- nextval:返回序列的下一个值
- currval:返回序列的当前值
--实例
insert into student values(toys_seq.nextval,'张三',18)
更改和删除序列:
使用alter sequence 语句修改序列,不能修改序列的start with参数
SQL>alter sequence toys_seq maxvalue 5000 cycle;
使用drop sequence
SQL>drop sequence toys_seq;
SYS_GUID函数:
- 生成32位的唯一编码作为主键
- 源自不需要对数据库进行访问的时间戳和机器标识符
- 一个显著的不足之处,管理这些值会变得很困难
序列与SYS_GUID函数的区别:
- 在不需要并行或远程环境中使用序列作为主键
- 在并行的环境下,或希望避免使用序列,情况下使用函数
- 不同的数据库中但需要再后来进行数据合并一起的情况下使用SYS_GUID函数
总结:
- 在单一环境中使用序列作为表的主关键字
- 在并行环境或者远程环境中选择
SYS_GUID
函数作为表的主关键字 - 在第一次使用序列时一定是用
nextval
进行初始化 - 修改序列是不可以修改
start with
的 - 序列与
SYS_GUID
函数使用的不同场合