oracle中sequence序列的使用
2011-11-24 10:00
549 查看
序列是一数据库对象,利用它可生成唯一的整数。一般使用序列自动地生成主键值。
1)建立序列命令
CREATE SEQUENCE [user.]sequence_name
[increment by n]
[start with n]
[maxvalue n | nomaxvalue]
[minvalue n | nominvalue];
[NOCYCLE] --
INCREMENT BY:指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为1。
START WITH:指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。
MAXVALUE:指定序列可生成的最大值。
NOMAXVALUE:为升序指定最大值为1027,为降序指定最大值为-1。
MINVALUE:指定序列的最小值。
NOMINVALUE:为升序指定最小值为1。为降序指定最小值为-1026。
NOCYCLE:一直累加,不循环
[INCREMENT BY n]
[MAXVALUE n| NOMAXVALUE ]
[MINVALUE n | NOMINVALUE];
修改序列可以:
修改未来序列值的增量。
设置或撤消最小值或最大值。
改变缓冲序列的数目。
指定序列号是否是有序。
注意:
1,第一次NEXTVAL返回的是初始值
2,可以alter除start至以外的所有sequence参数.如果想要改变start值,必须
drop sequence 再 re-create .
用于从数据库中删除一序列。
4.1)创建一个序列号的语句:
-- Create sequence
create sequence NCME_QUESTION_SEQ
minvalue 1
maxvalue 999999999999
start with 1
increment by 1
nocache;
4.2)SQL中取序列号的用法:
SELECT NCME_QUESTION_SEQ.nextval FROM dual
SELECT NCME_QUESTION_SEQ.CURRVAL FROM dual
1)建立序列命令
CREATE SEQUENCE [user.]sequence_name
[increment by n]
[start with n]
[maxvalue n | nomaxvalue]
[minvalue n | nominvalue];
[NOCYCLE] --
INCREMENT BY:指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为1。
START WITH:指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。
MAXVALUE:指定序列可生成的最大值。
NOMAXVALUE:为升序指定最大值为1027,为降序指定最大值为-1。
MINVALUE:指定序列的最小值。
NOMINVALUE:为升序指定最小值为1。为降序指定最小值为-1026。
NOCYCLE:一直累加,不循环
2)更改序列命令
ALTERSEQUENCE [user.]sequence_name[INCREMENT BY n]
[MAXVALUE n| NOMAXVALUE ]
[MINVALUE n | NOMINVALUE];
修改序列可以:
修改未来序列值的增量。
设置或撤消最小值或最大值。
改变缓冲序列的数目。
指定序列号是否是有序。
注意:
1,第一次NEXTVAL返回的是初始值
2,可以alter除start至以外的所有sequence参数.如果想要改变start值,必须
drop sequence 再 re-create .
3)删除序列命令
DROP SEQUENCE [user.]sequence_name;用于从数据库中删除一序列。
4)牛刀小试
4.1)创建一个序列号的语句:
-- Create sequence
create sequence NCME_QUESTION_SEQ
minvalue 1
maxvalue 999999999999
start with 1
increment by 1
nocache;
4.2)SQL中取序列号的用法:
SELECT NCME_QUESTION_SEQ.nextval FROM dual
SELECT NCME_QUESTION_SEQ.CURRVAL FROM dual
dual本身就是一个单词,并非是某个词组的缩写.名词意为对数,形容词为双重的意思.在Oracle中dual指dual table,一个单行单列的虚拟表.
1: DUAL table-- a special kind of one-row and one-column database table; 2:dual is a table which is created by oracle along with the data dictionary. It consists of exactly one column whose name is dummy and one record. The value of that record is X. 3:Note that the outer query references the dummy table called dual the dual table is used in Oracle when you need to run SQL that does not logically have a table name.
相关文章推荐
- Oracle序列的(Sequence)使用
- oracle中sequence序列的使用
- ORACLE PL/SQL 中序列(sequence)的简易使用方法介绍 - [Oracle SQL]
- Oracle中使用触发器(trigger)和序列(sequence)模拟实现自增列实例
- Oracle:序列 SEQUENCE 创建语法与使用
- Oracle 中序列(sequence)和触发器(trigger)的使用
- Oracle序列(Sequence)创建、使用、修改、删除
- ORACLE PL/SQL 中序列(sequence)的简易使用方法介绍
- 大家用hibernate的时候, 使用hibernate的sequence自动增长序列, 数据库是oracle
- Oracle中使用触发器(trigger)和序列(sequence)模拟实现自增列实例
- ORACLE PL/SQL 中序列(sequence)的简易使用方法介绍
- Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence
- ORACLE update使用序列sequence
- Oracle序列的(Sequence)使用
- Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence
- Oracle序列的(Sequence)使用
- Oracle中序列(SEQUENCE)的使用一例
- Oracle序列(Sequence)创建、使用、修改、删除
- oracle序列生成器(sequence)使用的一点小注意