Oracle数据库对象——序列

本文记录Oracle学习过程中遇到的Oracle数据库对象——序列~

在很多数据库中都存在一个自动增长的列。在Oracle中完成自动增长的功能只能依靠序列,所有的自动增长操作都需要用户手工处理,并且Oracle将序列的值装入内存来提高访问效率。

语法格式:

create sequence sequencename
	[increment by n]
	[start with n]
	[{maxvalue n|nomaxvalue}]
	[{minvalue n|nominvalue}]
	[{cycle|nocycle}]
	[{cache n|nochache}];

示例代码:

create sequence dept_deptid_seq
	increment by 10
	start with 120
	maxvalue 9999
	nochache
	nocycle;

序列提供了两种操作:

  • nextval:下一个;
  • currval:当前内容。

示例代码:

insert into person values(dept_deptid_seq.nextval, 'oliver', 1, null, '北京');

序列有可能产生裂缝,原因有:

  • 回滚;
  • 系统异常;
  • 多个表共用一个序列。

标签: none