您的位置:首页 > 数据库 > Oracle

Oracle数据库-设计自动增长序列(Oracle 11g)-笔记

2017-03-30 11:08 417 查看
在很多的数据库里面都存在一种称为自动增长列的数据类型。几乎所有的关系型数据库都支持自动增长列的操作,但是只有Oracle特殊,他只有在Oracle 12C版本之后才提供有自动增长列,在这之前都没有,所有类似的操作都必须通过序列的方式处理。
如果是Oracle 12C之前的版本只能通过手工处理.

**序列的创建语法**
CREATE SEQUENCE 序列名称;
[INCREMENT BY 步长][START WITH 开始值]
[MAXVALUE 最大值 | NOMAXVALUE]
[MINVALUE 最小值 | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE 缓存数据 | NOCACHE]


大部分情况,使用序列的时候都只会创建默认序列

创建一个默认序列seq:

CREATE SEQUENCE seq;



默认的序列就是指最小值为1,没有最大值,开始值为0,并且设置有20个缓存数据

查看序列属性:

SELECT * FROM user_sequences;



查询到的seq的信息:

序列名称(SEQUENCE_NAME):seq

SQL> SET LINESIZE 300;

SQL> SET PAGESIZE 30;

SQL> SELECT * FROM user_sequences;

SEQUENCE_NAME 序列的名称:seq

MIN_VALUE 最小值:1

MAX_VALUE 最大值:1.0000E+28

INCREMENT_BY 步长:1

CY 是否循环:N

OR

CACHE_SIZE 缓存 20

LAST_NUMBER 最后一次内容 1

那么现在序列已经创建成功了,随后需要去使用此序列,对于序列的使用可以采用两个伪列操作:

序列的对象.nextval:表示进行序列的增长,每调用一次,序列加上指定的步长;

序列的对象. currval:表示取得当前的序列内容,不管如何调用,序列的内容不发生改变
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息