一、什么是序列?
序列(sequence):Oracle提供的用于产生一系列唯一数字的数据库对象。
二、为什么要序列?
Oracle数据库不支持主键自增,因此引入序列解决这个问题。另外,MySQL和Sql Server数据库中是支持主键自增的,它们不存在序列的概念。
三、Oracle中怎么使用序列?
第一步,创建序列,有以下两种方式可以创建序列:
- 方式一:执行sql脚本设置序列
-- Create sequence
create sequence sys_dict_id_seq --sys_dict_id_seq是Sequence 名称
minvalue 1 -- 最小值
maxvalue 9999999999999999999999999999 --最大值
start with 1 --从1开始计数
increment by 1 --每次加1个
cache 20; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为:NOCACHE
- 方式二:在PL/SQL工具的序列界面设置(object -- sequence --右键new)
第二步,在插入的字段中,使用sys_dict_id_seq.nextval即可实现自增,如图所示:
如果想要删除序列,可以使用:
Drop sequence xxx_seq;
最后,需要注意的是,序列在以下情况会出现裂缝:回滚、系统异常、多个表同时使用同一序列,因此平时使用时要注意到这一点!!