轻松掌握oracle数据库开发中序列的使用

合集下载

sequence的用法

sequence的用法

ORACLE SEQUENCE用法在oracle中sequence就是序号,每次取的时候它会自动增加。

sequence与表没有关系。

1、Create Sequence首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限。

创建语句如下:CREATE SEQUENCE seqTestINCREMENT BY1-- 每次加几个START WITH1-- 从1开始计数NOMAXvalue -- 不设置最大值NOCYCLE -- 一直累加,不循环CACHE 10; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE2、得到Sequence值定义好sequence后,你就可以用currVal,nextVal取得值。

CurrVal:返回sequence的当前值NextVal:增加sequence的值,然后返回增加后sequence值得到值语句如下:SELECT Sequence名称.CurrVal FROM DUAL;如得到上边创建Sequence值的语句为:select seqtest.currval from dual在Sql语句中可以使用sequence的地方:- 不包含子查询、snapshot、VIEW的SELECT 语句- INSERT语句的子查询中- INSERT语句的values中- UPDATE 的SET中如在插入语句中insert into表名(id,name)values(seqtest.Nextval,'sequence 插入测试');注:- 第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。

CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。

oracle数据库中锁、序列、索引管理

oracle数据库中锁、序列、索引管理

详析Oracle数据库中锁、序列、索引管理一、锁1.1什么是锁数据库是一个多用户使用的共享资源。

当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。

若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。

而锁就是用于控制事务对数据的访问,实现事务的并发控制,保持数据库的一致性。

1.2锁的类型DDL锁:被Oracle自动的发布和释放DML锁:在事务处理的开始时被施加,而且在事务处理完成时被释放(使用Commit 或Rollback时被释放)内部锁:由Oracle自己管理以保护内部数据库结构注:DDL锁由数据库自动管理;DML锁和内部锁可以由用户直接或间接管理。

1.3锁的粒度1)TX锁:行级锁(事务锁),会阻止这行上其它DML操作,直到Commit或Rollback 时被释放,它只有X排他锁2)TM锁:表级锁。

2.1)Row-S 行共享(RS):共享行锁,即可被其他事务查询该行。

2.2)Row-X 行专用(RX):用于行的修改,即禁止其他事务对该行的所有操作。

2.3)Share 共享锁(S):阻止其他DML操作2.4)S/Row-X 共享行专用(SRX):阻止其他事务操作2.5)exclusive 专用(X):独立访问使用3)数据库级锁:锁定数据库为限制模式alter system enable restricted session;以下语句将锁定数据库为只读模式startup mount;alter database open read only;1.4锁的模式和使用1)共享锁(Share Table Lock,S):使用情况:当执行事务时,事务所要操作的表不希望被别的事务更新时可以使用。

即某表被加锁后只能被加锁的事务全权控制,其他事务只能对该表执行查询操作。

加锁语法:Lock Table TableName In Share Mode;使用度:中。

当对表执行大面积更新操作时可使用,反之,则不用。

零点起飞学Oracle之序列

零点起飞学Oracle之序列

用户每使用序列一次,都要对序列进行一次查询。如
果把序列中的序号放在内存中进行缓冲,那么用户获 得序号的速度将大大加快。选项cache的作用就是将序 列中接下来的n个序号在内存中进行缓冲。如果不希望 进行缓冲,可以用nocache选项代替它。当使用序列的 nextval属性取值时,可以从缓存中直接获取,从而提 高效率。
在前面章节中我们讲解到可以利用获得表
employeenew中最大employee_id并加1的方法来获得新 记录的员工employee_id 。对于用户来说,这种方式显 得过于繁琐。本小节将利用序列来处理这一问题。序 列是Oracle数据库对象之一。一旦创建,即可保存于 数据库中。
默认情况下,用户可以在自己创建序列。创建序列的
如果为序列指定了最大值,那么当序列中的序号被消
耗完时,用户将无法从这个序列中取得序号。选项 cycle使得序列中的序号可以循环使用。当用户正在使 用序列中的最大值时,下一个可以使用的序号就是它 的开始值,并且可以周而复始,获取无穷多次。
【示例14-7】为了说明cycle的功能及start with与 minvalue的区别,首先创建该序列,并为各选项指定特 定值。
本章主要讲解了序列的创建和使用,以及序列的各个
属性所代表的实际意义。本章重点是了解序列各个属 性,尤其是cycle属性和cache属性。本章难点是,可以 明确序列的概念,并掌握在开发中如何使用序列。下 一章将讲解用户、角色与权限控制。
(5)需要特别注意的是,修改序列的步长,很可能会影
响获得最大值。例如,将序列testnew_seq的步长修改为3之 后,将其最大值重臵为30。 (6)继续调用testnew_seq.nextval,期望获得最大值30。 (7)此时,如果将序列testnew_seq的步长重臵为1,则可 以获得testnew_seq的最大值30。但获得最大值30之后,再 次使用testnew_sql.nextval,Oracle仍会抛出错误:

零点起飞学Oracle之序列

零点起飞学Oracle之序列
Oracle序列可以根据需要生成 不同范围的数字。
高性能
Oracle序列的性能非常高,可 以快速生成大量的唯一数字。
02
Oracle序列的创建
创建序列的语法
• 创建序列的基本语法:CREATE SEQUENCE sequence_name [START WITH start_value] [INCREMENT BY increment] [MINVALUE minvalue] [MAXVALUE maxvalue] [CACHE cache] [NOORDER] [CYCLE] [RESTART]
修改序列的起始值
使用`ALTER SEQUENCE sequence_name RESTART WITH start_value;`命令修改序列的起始值。
修改序列的最大值和最小值
使用`ALTER SEQUENCE sequence_name MAXVALUE max_value MINVALUE min_value;`命令修改序列的最大值和
创建序列的语法
START WITH:指定序列的起 始值。
INCREMENT BY:指定序列 的增量。
MINVALUE:指定序列的最小 值。
创建序列的语法
01
MAXVALLeabharlann E:指定序列的最大值。02
CACHE:指定预先分配给序列的内存缓冲区的大小。
NOORDER:指定序列不保证顺序。
03
创建序列的语法
02
合理设置缓存过期 时间
根据实际情况设置缓存的过期时 间,避免因缓存过期导致的问题。
03
缓存策略选择
根据实际需求选择合适的缓存策 略,如LRU(最近最少使用)等, 以提高性能。

Oracle数据库中序列(SEQUENCE)的用法详解

Oracle数据库中序列(SEQUENCE)的用法详解

在Oracl‎e数据库中,什么是序列‎呢?它的用途是‎什么?序列(SEQUE‎N CE)其实是序列‎号生成器,可以为表中‎的行自动生‎成序列号,产生一组等‎间隔的数值‎(类型为数字‎)。

其主要的用‎途是生成表‎的主键值,可以在插入‎语句中引用‎,也可以通过‎查询检查当‎前值,或使序列增‎至下一个值‎。

创建序列需‎要C REA‎T E SEQUE‎N CE系统‎权限。

序列的创建‎语法如下:CREAT‎E SEQUE‎N CE 序列名 [INCRE‎M ENT BY n] [START‎WITH n] [{MAXVA‎L UE/ MINVA‎L UE n|NOMAX‎V ALUE‎}] [] [{CACHE‎n|NOCAC‎H E}];INCRE‎M ENT BY 用于定义序‎列的步长,如果省略,则默认为1‎,如果出现负‎值,则代表序列‎的值是按照‎此步长递减‎的。

START‎WITH 定义序列的‎初始值(即产生的第‎一个值),默认为1。

MAXVA‎L UE 定义序列生‎成器能产生‎的最大值。

选项NOM‎A XVAL‎U E是默认‎选项,代表没有最‎大值定义,这时对于递‎增序列,系统能够产‎生的最大值‎是10的2‎7次方;对于递减序‎列,最大值是-1。

MINVA‎L UE定义‎序列生成器‎能产生的最‎小值。

选项NOM‎A XVAL‎U E是默认‎选项,代表没有最‎小值定义,这时对于递‎减序列,系统能够产‎生的最小值‎是?10的26‎次方;对于递增序‎列,最小值是1‎。

CYCLE‎和NOCY‎C LE 表示当序列‎生成器的值‎达到限制值‎后是否循环‎。

C YCLE‎代表循环,NOCYC‎L E代表不‎循环。

如果循环,则当递增序‎列达到最大‎值时,循环到最小‎值;对于递减序‎列达到最小‎值时,循环到最大‎值。

如果不循环‎,达到限制值‎后,继续产生新‎值就会发生‎错误。

CACHE‎(缓冲)定义存放序‎列的内存块‎的大小,默认为20‎。

精通Oracle核心技术和项目实战之序列

精通Oracle核心技术和项目实战之序列

17.3.4 序列的增长步长



(5)修改序列的步长,很可能会影响获得 最大值。现在序列step_seq的步长为5,将序 列最大值重臵为30。 (6)连续调用step_seq.nextval,期望获得 最大值30。 (7)此时,如果将序列step_seq的步长重臵 为1,则可以获得step_seq的最大值30。但获 得最大值30之后,再次使用step_sql.nextval, Oracle仍会抛出错误。
17.3.2 指定序列初始值



在示例17-8中,需要多次调用cus_seq.nextval的 方式,使其值增长到981。除了手动将序列 cus_seq的nextval属性值调整到合适的位臵之外, 还可以在创建序列时使用start with选项来指定 序列的初始值。 【示例17-10】重新创建cus_seq,创建之前首 先需要利用drop命令删除已有序列,然后再创 建新的同名序列。 【示例17-11】此时,可以直接利用cus_seq的 nextval属性来指定customer_id的主键值。
17.3.6 序列缓存大小



(4)将序列cycle_seq的最大值修改为21, 再次尝试修改可循环取值状态。 (5)序列cache的存在会对修改其他选项产 生影响。但是,我们可以通过alter命令修改 cache的大小。修改序列tcycle_seq的缓存大 小为10。 (6)用于主键列取值的序列,最好将其缓 存屏蔽。屏蔽序列tcycle_seq缓存。
17.2.2 使用序列

序列提供了两个属性,即nextval和currval, 用来访问序列中的序号。其中nextval代表下 一个可用的序号,currval代表当前的序号。 序列可以认为是包含了一系列序号的一个 指针。序列刚被创建时,这个指针位于第 一个序号之前,以后每获得一个序号,指 针就向后移动一个位臵,这时就可以用 currval访问序列中的当前序号,用nextval访 问下一个序号。

oracle查询序列语句

oracle查询序列语句

oracle查询序列语句一、序列概述序列(Sequence)是Oracle数据库中的一种对象,用于生成唯一的数字序列。

序列可以用于自动产生主键值、创建唯一的标识符或者生成一些特定的数字序列。

二、创建序列在Oracle中,可以使用CREATE SEQUENCE语句来创建序列。

以下是创建序列的语法:```CREATE SEQUENCE sequence_name[INCREMENT BY n][START WITH n][MAXVALUE n | NOMAXVALUE][MINVALUE n | NOMINVALUE][CYCLE | NOCYCLE][CACHE n | NOCACHE];```参数说明:- sequence_name:序列的名称,必须是唯一的。

- INCREMENT BY n:每次递增的步长,默认为1。

- START WITH n:序列起始值,默认为1。

- MAXVALUE n | NOMAXVALUE:序列的最大值,如果指定为NOMAXVALUE,则表示没有最大值限制。

- MINVALUE n | NOMINVALUE:序列的最小值,如果指定为NOMINVALUE,则表示没有最小值限制。

- CYCLE | NOCYCLE:循环选项,如果指定为CYCLE,则当达到最大值后会重新从最小值开始循环;如果指定为NOCYCLE,则到达最大值后会停止递增。

- CACHE n | NOCACHE:缓存选项,如果指定为CACHE,则会预先缓存n个序列值,加快性能;如果指定为NOCACHE,则不缓存序列值。

三、查询序列1. 查询所有序列要查询数据库中的所有序列,可以使用以下SQL语句:```SELECT sequence_name FROM all_sequences;```该语句会返回所有序列的名称。

2. 查询指定序列的当前值使用以下SQL语句可以查询指定序列的当前值:```SELECT sequence_name.CURRVAL FROM dual;其中,sequence_name是要查询的序列的名称。

ORACLESEQUENCE的简单介绍(自增长字段).

ORACLESEQUENCE的简单介绍(自增长字段).

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

1、Create Sequence你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,CREATE SEQUENCE emp_sequenceINCREMENT BY 1 -- 每次加几个START WITH 1 -- 从1开始计数NOMAXVALUE -- 不设置最大值NOCYCLE -- 一直累加,不循环CACHE 10;一旦定义了emp_sequence,你就可以用CURRVAL,NEXTV ALCURRVAL=返回sequence的当前值NEXTV AL=增加sequence的值,然后返回sequence 值比如:emp_sequence.CURRVALemp_sequence.NEXTV AL可以使用sequence的地方:- 不包含子查询、snapshot、VIEW的SELECT 语句- INSERT语句的子查询中- NSERT语句的VALUES中- UPDATE 的SET中可以看如下例子:INSERT INTO emp VALUES(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDA TE, 1200, NULL, 20;SELECT empseq.currval FROM DUAL;但是要注意的是:- 第一次NEXTV AL返回的是初始值;随后的NEXTV AL会自动增加你定义的INCREMENT BY 值,然后返回增加后的值。

CURRVAL 总是返回当前SEQUENCE 的值,但是在第一次NEXTV AL 初始化之后才能使用CURRVAL,否则会出错。

一次NEXTV AL会增加一次SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTV AL,其值就是不一样的。

oracle数据库中创建序列并用序列自动生成ID或编号

oracle数据库中创建序列并用序列自动生成ID或编号

oracle数据库中创建序列并⽤序列⾃动⽣成ID或编号⼯作中经常需要⽣成指定格式的ID,例如:学⽣ID--S2*******,基⾦代码--F20023等。

这种字符+数字格式的ID类⼿动数据有点⿇烦。

今天我跟⼤家分享⽤创建序列后,再通过触发器⾃动⽣成上述混合格式的ID的⽅法。

当然这是我经常⽤的⼀种⽅法,如果⼤家有其他⽅法或者对于我下⾯分享的内容有更好的意见建议,在评论区留⾔讨论。

⾸先我创建了学⽣信息表sut_info,如下:stu_infostu_id stu_name stu_age stu_sexS2020001 Rose 18famale表中stu_id是S+7位数字组成,在后⾯创建序列的时候注意这⼀点。

第⼀步,创建数据表,代码如下:create table stu_info(stu_id varchar2(16) not null primary key,stu_name varchar2(32),stu_age number(8),stu_sex varchar2(8));第⼆步,创建序列号seq_stu_id,代码如下:/*为stu_id创建序列*/create sequence seq_stu_idstart with2020000nocache;查看序列值的⽅法序列名.nextval(查看下⼀个值)或者序列名.currval(查看当前值)。

这⾥要注意的是查看序列的初始值要先⽤nextval,如果对于初始值⽤currval会报错。

⽐如:查看上⾯创建序列的初始值的代码如下:/*验证序列*/select seq_stu_id.nextval from dual;查询结果为:NEXTVAL2020000第三步,创建触发器,实现对stu_info 表添加数据的时候⽤序列值⾃动⽣成学⽣id,代码如下:/*创建触发器实现对stu_info表添加数据的时候,通过序列号⾃动⽣成stu_id,形式为:S+7位数字*/create or replace trigger int_stu_idbefore inserton stu_infofor each rowbeginselect'S'||seq_stu_id.nextval into:new.stu_id from dual;end int_stu_id;下⾯对stu_info 表插⼊数据看看。

oracle 的alter sequence语法

oracle 的alter sequence语法

一、ALTER SEQUENCE语法概述在Oracle数据库中,ALTER SEQUENCE语句用于修改已存在的序列对象的属性。

通过ALTER SEQUENCE语法,用户可以改变序列对象的起始值、递增量、最小值、最大值、循环属性和缓存值等属性。

二、ALTER SEQUENCE语法详解1.修改序列的起始值用户可以使用ALTER SEQUENCE语句来修改序列对象的起始值。

语法如下:ALTER SEQUENCE sequence_nameINCREMENT BY new_start_value;其中sequence_name是要修改的序列对象的名称,INCREMENT BY 关键字后面是新的起始值。

例如:ALTER SEQUENCE seq_employeeINCREMENT BY 100;上述语句将序列seq_employee的起始值修改为100。

2.修改序列的递增量除了修改起始值外,用户还可以使用ALTER SEQUENCE语句来修改序列对象的递增量。

语法如下:ALTER SEQUENCE sequence_nameINCREMENT BY new_increment_value;其中sequence_name是要修改的序列对象的名称,INCREMENT BY 关键字后面是新的递增量。

例如:ALTER SEQUENCE seq_employeeINCREMENT BY 50;上述语句将序列seq_employee的递增量修改为50。

3.修改序列的最小值和最大值用户可以使用ALTER SEQUENCE语句来修改序列对象的最小值和最大值。

语法如下:ALTER SEQUENCE sequence_nameMINVALUE new_min_valueMAXVALUE new_max_value;其中sequence_name是要修改的序列对象的名称,MINVALUE关键字后面是新的最小值,MAXVALUE关键字后面是新的最大值。

ORACLE SEQUENCE的简单介绍(自增长字段)

ORACLE SEQUENCE的简单介绍(自增长字段)

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

1、Create Sequence你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,CREATE SEQUENCE emp_sequenceINCREMENT BY 1 -- 每次加几个START WITH 1 -- 从1开始计数NOMAXVALUE -- 不设置最大值NOCYCLE -- 一直累加,不循环CACHE 10;一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL CURRVAL=返回 sequence的当前值NEXTVAL=增加sequence的值,然后返回 sequence 值比如:emp_sequence.CURRVALemp_sequence.NEXTVAL可以使用sequence的地方:- 不包含子查询、snapshot、VIEW的 SELECT 语句- INSERT语句的子查询中- NSERT语句的VALUES中- UPDATE 的 SET中可以看如下例子:INSERT INTO emp VALUES(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20); SELECT empseq.currval FROM DUAL;但是要注意的是:- 第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。

CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。

一次NEXTVAL会增加一次SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。

明白?- 如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。

ORACLE SEQUENCE的简单介绍

ORACLE SEQUENCE的简单介绍

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

1、Create Sequence你首先要有CREA TE SEQUENCE或者CREA TE ANY SEQUENCE权限,CREA TE SEQUENCE emp_sequenceINCREMENT BY 1 -- 每次加几个START WITH 1 -- 从1开始计数NOMAXV ALUE -- 不设置最大值NOCYCLE -- 一直累加,不循环CACHE 10;一旦定义了emp_sequence,你就可以用CURRV AL,NEXTVALCURRV AL=返回sequence的当前值NEXTVAL=增加sequence的值,然后返回sequence 值比如:emp_sequence.CURRV ALemp_sequence.NEXTVAL可以使用sequence的地方:- 不包含子查询、snapshot、VIEW的SELECT 语句- INSERT语句的子查询中- NSERT语句的V ALUES中- UPDA TE 的SET中可以看如下例子:INSERT INTO emp V ALUES(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDA TE, 1200, NULL, 20);SELECT empseq.currval FROM DUAL;但是要注意的是:- 第一次NEXTV AL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。

CURRV AL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRV AL,否则会出错。

一次NEXTVAL会增加一次SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。

数据库使用序列

数据库使用序列

数据库使用序列序列是数据库中一种非常重要的对象,它可以自动生成连续的数字序列,通常用于为表中的主键提供唯一的值。

本文将详细介绍序列的定义、使用和常见应用场景。

一、序列的定义和语法序列(Sequence)是一种特殊的数据库对象,它可以生成唯一的数字序列,通常用于为表中的主键字段提供唯一值。

序列可以在创建表时定义,也可以在表创建之后单独创建。

创建序列的语法如下:CREATE SEQUENCE 序列名 START WITH 开始值 INCREMENT BY 增量值 MAXVALUE 最大值 MINVALUE 最小值 CYCLE/NOCYCLE CACHE 缓存大小;其中,- 序列名:序列的名称,必须是唯一的;- 开始值:指定序列的起始值,默认为1;- 增量值:指定每次增加的值,默认为1,可以是负数;- 最大值:指定序列生成的最大值,如果超过最大值,序列将从起始值重新开始生成(如果指定了CYCLE);- 最小值:指定序列生成的最小值,如果小于最小值,序列将停止(如果指定了NOCYCLE);- CYCLE/NOCYCLE:指定当序列到达最大值或最小值时的处理方式,CYCLE表示重新开始生成,NOCYCLE表示停止生成;- CACHE:指定缓存的序列值的数量,用于提高性能,默认为20;创建好序列之后,我们可以使用序列来生成唯一的数字序列。

生成序列的语法如下:SELECT 序列名.NEXTVAL FROM DUAL;其中,NEXTVAL是序列提供的一个函数,用于获取下一个序列值。

二、序列的使用场景序列通常会与表的主键字段关联起来,用于生成唯一的主键值。

在实际应用中,序列的使用场景非常广泛,以下是几个常见的应用场景:1. 自增主键在表创建时,可以将主键字段定义为自增类型(如MySQL的AUTO_INCREMENT),但是在Oracle中没有这种类型。

因此,我们可以使用序列来实现自增主键的功能。

只需要在表创建时,为主键字段设置默认值为序列的下一个值,即可实现自增主键。

数据库建序列

数据库建序列

数据库建序列
数据库建序列是一项常用的数据库操作,它可以为表中的某个字段生成一个唯一的自增数值。

在实际的数据库应用中,序列通常被用于自动编号、身份证号、订单号等各种需要唯一标识的数据上。

在Oracle数据库中,可以通过如下SQL语句创建一个基本的序列:
CREATE SEQUENCE seq_name
INCREMENT BY 1
START WITH 1
MAXVALUE 999999999
MINVALUE 1
CACHE 20;
其中,seq_name是序列的名称,INCREMENT BY 1表示每次自增1,START WITH 1表示从1开始自增,MAXVALUE和MINVALUE分别表示序列的最大值和最小值,CACHE表示序列的缓存大小,可以提高序列的性能。

创建好序列后,可以通过如下SQL语句获取序列的下一个值:
SELECT seq_name.NEXTVAL FROM DUAL;
这条语句会返回一个唯一的自增数值,可以将其插入到表中的字段中,实现自动编号等功能。

除了Oracle数据库外,其他数据库也都支持序列的创建和使用,具体语法和参数可能会有所不同,需要根据具体的数据库类型进行调
整。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

轻松掌握oracle数据库开发中序列的使用序列的概念:
序列是一数据库对象,利用它可生成唯一的整数。

一般使用序列自动地生成主码值。

一个序列的值是由特殊的Oracle程序自动生成,因此序列避免了在应用层实现序列而引起的性能瓶颈。

Oracle序列允许同时生成多个序列号,而每一个序列号是唯一的。

当一个序列号生成时,序列是递增,独立于事务的提交或回滚。

允许
设计缺省序列,不需指定任何子句。

该序列为上升序列,由1开始,增量为1,没有上限。

1: 建立序列命令
INCREMENT BY:指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。

序列为升序。

忽略该子句时,缺省值为1。

START WITH:指定生成的第一个序列号。

在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。

对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。

MAXVALUE:指定序列可生成的最大值。

NOMAXVALUE:为升序指定最大值为1027,为降序指定最大值为-1。

MINVALUE:指定序列的最小值。

NOMINVALUE:为升序指定最小值为1。

为降序指定最小值为-1026
2:更改序列命令
修改未来序列值的增量。

设置或撤消最小值或最大值。

改变缓冲序列的数目。

指定序列号是否是有序。

3:删除序列命令
从数据库中删除一序列。

创建一个序列号的语句:
PB中取序列号的用法:。

相关文档
最新文档