序列:常用的数据库对象。
- 自动提供唯一的数值。
- 可共享对象,多个用户使用。
- 主要用于提供主键值。
- 将序列值装入内存可以提高访问效率。
一、创建序列:
例:创建序列 DEP_SEQ为表 DEPARTMENTS 提供主键。
(初始值为100,每次以10进行递增,最大值不超过9999,不进行循环。)
二、序列的使用:
将序列值装入内存可提高访问效率。
使用方法:
调用NEXTVAL将生成序列中的下一个序列号,调用时要指出序列名,即: 序列名.NEXTVAL。
调用CURRVAL将产生序列的当前值,无论调用多少次都不会产生序列的下一个值。方法同上,即:序列名. CURRVAL。
例:查看当前序列值和新增下一个序列值。
序列在下列情况下出现裂缝:
-
- 数据回滚。
- 系统异常。
- 多个表同时使用同一序列。
三、修改序列:
修改序列的增量, 最大值, 最小值, 循环选项, 或是否装入内存。
注意事项:
- 必须是序列的拥有者或对序列有 ALTER 权限。
- 只有将来的序列值会被改变,之前的不会改变。
- 改变序列的初始值只能通过删除序列之后重建序列的方法实现。
例:把DEP_SEQ序列以每次以20进行递增,最大值不超过999999,不进行循环。
四、查询序列:
查询数据字典视图 USER_SEQUENCES 获取序列定义信息。
查询数据字典视图 USER_SEQUENCES 可以查看序列的设置。
例:查看用户拥有的序列。
- 删除序列:
可使用 DROP SEQUENCE 语句删除序列,删除之后,序列不能再次被引用。
例:删除dep_seq序列。