您当前位置:优侠库 > 资讯攻略 >
来源:未知
2020-12-17 19:49:09 浏览: 分类:资讯攻略

ORACLE自增序列SEQUENCE

在oracle中,sequence就是所谓的序列号,每次取数都会自动递增,一般用在需要按序列号排序的地方。

1、创建序列

首先,您必须拥有“创建序列”或“创建任意序列”权限,

创建序列emp_sequence

增加1 -一次添加几个

从1开始-从1开始计数

NOMAXVALUE -不要设置最大值。

不循环——总是积累,而不是循环。

缓存10;

一旦定义了emp_sequence,就可以使用CURRVAL,NEXTVAL。

CURRVAL=返回序列的当前值

NEXTVAL=增加sequence的值,然后返回sequence的值。

例如:

雇员序列。当前值

雇员序列。下一个值

可以使用sequence的地方:

-不带子查询、快照和视图的SELECT语句

-在insert语句的子查询中

nsert语句中的值

-在更新的集合中

你可以看看下面的例子:

插入emp值

(empseq.nextval,' LEWIS ',' CLERK ',7902,SYSDATE,1200,NULL,20);

从DUAL中选择empseq.currval

但应该注意的是:

NEXTVAL第一次返回的初始值;后续的NEXTVAL将自动按照您定义的值增加增量,然后返回增加的值。CURRVAL总是返回当前序列的值,但是在第一次NEXTVAL初始化之前不能使用CURRVAL,否则会出错。一个NEXTVAL会将SEQUENCE的值增加一次,所以如果在同一个语句中使用多个NEXTVAL,它们的值就会不同。明白了吗?

-如果指定了CACHE值,ORACLE可以提前在内存中放一些序列,以便访问更快。提取缓存内容后,oracle会自动将另一个组提取到缓存中。使用缓存时,数字可能会跳跃。比如数据库突然非正常关闭,缓存中的序列就会丢失。所以你可以在创建序列的时候使用nocache来防止这种情况。

2、改变顺序

您可能是序列的所有者,或者您拥有更改序列的ALTER ANY SEQUENCE权限。您可以更改除“开始至”之外的所有序列参数。如果要更改起始值,必须删除序列并重新创建。

改变序列的例子

改变序列emp_sequence

增加10

最大值10000

循环-10000年后从零开始

诺卡奇;

影响序列的初始化参数:

SEQUENCE_CACHE_ENTRIES =设置可以同时缓存的序列数。

它可以是一个简单的丢弃序列。

删除序列order _ seq

本文链接:http://www.123down.cn/gonglue/227135.html

攻略资讯
安卓软件
安卓游戏