在access中有自动编号的数据类型,mssql和mysql也都有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值,而oracle没有自动增长的数据类型,我们需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段,可以预见的是,有此功能,我们可以把数据从access、mssql或mysql迁移到oracle了!
create sequence type_id increment by 1 start with 1
这句中,type_id为序列号的名称,每次增长为1,起始序号为1。
如果要删除序列,用drop sequence 序列名就可以了!!
序列可以保证多个用户对同一张表进行操作时生成唯一的整数 利用序列可以自动生成主关键字 序列只存在于数据字典中.
create sequence sequence
[increment by n]
[start with n]
[{maxvalue n|nomaxvalue}]
[{minvalue n|nominvalue}]
[{cycle |nocycle}]
[{cache n|nocache}]
increment by--指定步长
start with--指定初始值
maxvalue--定义序列生成的最大编号.默认的maxvalue就是nomaxvalue 对于递增序列为10^27 对于递减序列为-1
minvalue--定义序列的最小编号 默认的minvalue为nominvalue 对于递增序列为1 递减序列为-10^26.
cycle--配置序列在达到界限值时重复编号
nocycle--达到界限值时不重复编号 这是默认值 当你试图生成maxvalue+1时将返回异常.
cache--定义在内存中保留的序列编号块的大小 默认值为20.
nocache--强制数据词典对于生成的每个序列编号进行更新 保证在生成的编号中没有空缺 但这样会降低性能.
生成一个序列
create sequence dept_deptid_seq
increament by 10
start with 120
maxvalue 9999
nocache
nocycle
//如果是用来生成主键值的话 不要用cycle选项 而且命名序列时最好能体现它的潜在用途以便于理解.
确认序列