码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 序列

时间:2017-12-27 23:55:18      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:www.   log   http   负数   博客   占用   enc   arch   integer   

一、介绍

序列(Sequence),又叫序列生成器,用于提供一系列的数字,并不会与特定的表关联,开发人员一般用它填充主键和计数。
每次访问序列,序列按照一定的规律增加或者减少。
序列的定义存储在SYSTEM表空间中,序列不像表,它不会占用磁盘空间。
序列独立于事务,每次事务的提交和回滚都不会影响序列。

二、使用

1、创建

CREATE SEQUENCE [ schema. ] sequence
   [ { INCREMENT BY | START WITH } integer        --INCREMENT BY设置步长值(为整数则递增,负数递减),START WITH设置初始值
   | { MAXVALUE integer | NOMAXVALUE }            --最大值 | 不设置最大值
   | { MINVALUE integer | NOMINVALUE }            --最小值 | 不设置最小值
   | { CYCLE | NOCYCLE }                        --到达最值后是否循环,若不循环,达到限值后继续产生新值就会发生错误
   | { CACHE integer | NOCACHE }                --缓存|不缓存
   | { ORDER | NOORDER }                        --设置是否按照请求的顺序产生序列
   | { KEEP | NOKEEP }                            --
   | { SESSION | GLOBAL }                        --
   ]...
;

CACHE(缓冲)定义存放序列的内存块的大小,默认为20。
NOCACHE表示不对序列进行内存缓冲。对序列进行内存缓冲,可以改善序列的性能。 当实例异常关闭时,缓存选项会造成数据丢失。

2、修改

ALTER SEQUENCE [ schema. ] sequence
  { INCREMENT BY integer
  | { MAXVALUE integer | NOMAXVALUE }
  | { MINVALUE integer | NOMINVALUE }
  | { CYCLE | NOCYCLE }
  | { CACHE integer | NOCACHE }
  | { ORDER | NOORDER }
  | { KEEP | NOKEEP }
  | { SESSION | GLOBAL }
  } ...
;

注意:
(1)必须是序列的拥有者或对序列有ALTER 权限;
(2)只有将来的序列值会被改变;
(3)不能直接修改序列初始值,只能通过删除序列之后重建的方法实现;

3、删除

DROP SEQUENCE [ schema. ] sequence_name ;

 

4、使用

CURRVAL:    返回序列的当前值。
NEXTVAL:    序列递增,返回下一值。

你不能使用序列的CURRVAL和NEXTVAL,在下面情况下(具体参见官方文档):
(1)在DELETE、SELECT、UPDATE的子查询中
(2)在视图或物化事物的查询中。
(3)SELECT查询中使用了DISTINCT操作符。
(4)SELECT查询中有GROUP BY或ORDER BY

 

5、查看

SELECT * FROM USER_SEQUENCES;

SELECT * FROM ALL_SEQUENCES;

SELECT * FROM DBA_SEQUENCES;

 

参考材料:

Syntax for SQL Statements https://docs.oracle.com/database/121/SQLQR/sqlqr01001.htm#SQLQR110
ORACLE序列总结 - 潇湘隐者 - 博客园 https://www.cnblogs.com/kerrycode/archive/2013/03/18/2965747.html
oracle中序列的使用 - warrior1234 - 博客园 https://www.cnblogs.com/warrior4236/p/5866214.html

 

Oracle 序列

标签:www.   log   http   负数   博客   占用   enc   arch   integer   

原文地址:https://www.cnblogs.com/chinas/p/8087151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!