概述
序列是由用户创建的数据库对象。序列可产生唯一的整数。序列的典型用途是制作键的值,每行必须是唯一的。Oracle内部程序生成序列,并增加或减少序列。序列是一个省时的对象,因为它可以减少应用程序中生成序列程序的代码量。序列号独立于表进行存储和生成,因此,多个表可以使用同一序列。
序列是不与特定表相关联的计数器。通过创建Oracle序列和触发器,可以自动增加表的主键。序列通常用于填充主键和计数。
【序列用法↓】
1.创建一个序列。
ORACLE序列语法格式为:
CREATESEQUENCE序列名称。
[INCREMENT BY n]
[STARTWITHn]
[{MAXVALUE/MinValueN|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHEn|NOCACHE}];
(1)增量比用于定义序列的步长。如果省略,默认值为1。如果出现负值,表示Oracle序列的值将根据该步长减小。
(2)STARTWITH定义序列的初始值(即生成的第一个值),默认值为1。
(3)MAXVALUE定义序列发生器可以产生的最大值。选项NOMAXVALUE是默认选项,这意味着没有最大值定义。此时,对于增量式Oracle序列,系统能产生的最大值是10的27次方;对于递减序列,最大值为-1。
(4)MINVALUE定义序列发生器可以产生的最小值。选项NOMAXVALUE是默认选项,这意味着没有最小值定义。此时,系统可以为降序序列产生的最小值是多少?10的26次方;对于升序序列,最小值为1。
(5)CYCLE和NOCYCLE表示序列发生器的值达到极限值后是否循环。CYCLE代表循环,NOCYCLE代表无循环。如果循环,当增量序列达到最大值时,循环到最小值;最小值为1。当下降序列达到最小值时,循环到最大值。如果不循环,达到极限值后,继续生成新值会得到一个错误。
ORACLEOCP考试有一个关于顺序的问题,如下。
评估以下创建序列状态:
创建序列1.
从100开始.
增加10.
最大值200.
周期.
NOCACHE
序列1已生成数量上限为200。您发布了以下内容.
SQLstatement:
selectseq1.nextvalfrodual;
whatisdisplayedbyselect语句?
A.1.
B.10.
C.100.
D.anerror.
答:A。
(6)CACHE定义存储序列的内存块的大小,默认值为20。NOCACHE表示序列不在内存中缓冲。内存缓冲可以提高序列的性能。当实例异常关闭时,缓存选项会导致数据丢失。
2. 删除序列。
语法是dropSEQUENCE[schema];序列名称;
CREATESEQUENCESEQ_TEST.
增加1.
从1开始.
MINVALUE1NOMAXVALUE.
NOCYCLE
DROPSEQUENCESEQ_TEST
3. 顺序使用。
返回序列的当前值。
NEXTVAL:序列递增并返回下一个值。
在下列情况下不能使用序列的CURRVAL和NEXTVAL(详见官方文件):
1:在删除、选择和更新子查询中。
2.在视图或物化事物的查询中。
DISTINCT运算符用于3:SELECT查询。
4:在4:SELECT查询中有GROUPBY或ORDERBY。
4. 序列查看。
选择*从用户_序列;
从所有序列中选择*;
SELECT*FROMDBA_SEQUENCES
5. 序列修改。
您不能修改序列的初始值,否则它将报告ORA-02283:
SQL>alteresequenceeq_teststartwith2;
alteresequenceeq_teststartwith2.
ORA-02283:无法更改启动序列号。
SQL>ALTERSEQUENCESEQ_TESTENCREMENTBY2;
Sequencealtered
关于Oracle序列的内容就总结到这里啦,希望对大家能提供一定的参考,后面我们会继续分享更多知识干货,一起学习,一起进步!
最后
以上就是大力野狼为你收集整理的mysql创建序列发生器_Oracle序列用法的全部内容,希望文章能够帮你解决mysql创建序列发生器_Oracle序列用法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复