当前位置:   article > 正文

oracle序列_查询序列定义oracle

查询序列定义oracle

目录

1.什么是序列

2.定义序列

3.查询序列

4.NEXTVAL 和 CURRVAL 伪列

5.序列应用实例

6.修改序列

7.删除序列

8.序列的裂缝


1.什么是序列

  • 序列: 可供多个用户用来产生唯一数值的数据库对象

    • 自动提供唯一的数值

    • 共享对象

    • 主要用于提供主键值

    • 将序列值装入内存可以提高访问效率

2.定义序列

  1. CREATE SEQUENCE sequence
  2.       [INCREMENT BY n]  --每次增长的数值
  3.       [START WITH n]    --从哪个值开始
  4.       [{MAXVALUE n | NOMAXVALUE}]
  5.       [{MINVALUE n | NOMINVALUE}]
  6.       [{CYCLE | NOCYCLE}]     --是否需要循环
  7.       [{CACHE n | NOCACHE}];  --是否缓存登录

3.查询序列

  • 查询数据字典视图 USER_SEQUENCES 获取序列定义信息

  1. SELECT sequence_name, min_value, max_value,
  2. increment_by, last_number
  3. FROM user_sequences;

4.NEXTVAL 和 CURRVAL 伪列

  • NEXTVAL 返回序列中下一个有效的值,任何用户都可以引用

  • CURRVAL 中存放序列的当前值

  • NEXTVAL 应在 CURRVAL 之前指定,否则会报CURRVAL 尚未在此会话中定义的错误。

5.序列应用实例

  1. INSERT INTO departments(department_id,
  2.           department_name, location_id)
  3. VALUES     (dept_deptid_seq.NEXTVAL,
  4.            'Support', 2500);

6.修改序列

  1. -- 修改序列的增量, 最大值, 最小值, 循环选项, 或是否装入内存
  2. ALTER SEQUENCE dept_deptid_seq
  3.               INCREMENT BY 20
  4.               MAXVALUE 999999
  5.               NOCACHE
  6.               NOCYCLE;
  7. /*
  8. 注意事项:
  9. 1.必须是序列的拥有者或对序列有 ALTER 权限
  10. 2.只有将来的序列值会被改变
  11. 3.改变序列的初始值只能通过删除序列之后重建序列的方法实现
  12. */

7.删除序列

  1. -- 使用 DROP SEQUENCE 语句删除序列
  2. -- 删除之后,序列不能再次被引用
  3. DROP SEQUENCE dept_deptid_seq;

8.序列的裂缝

  • 序列在下列情况下出现裂缝:

    • 回滚

    • 系统异常

    • 多个表同时使用同一序列

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/958289
推荐阅读
相关标签
  

闽ICP备14008679号