Oracle如何使用序列?

Oracle序列(sequence)是一种数据库项,能够生成一个整数序列。通常用于填充数字类型的主键列。

Oracle序列使用教程:

1、创建序列:

CREATE SEQUENCE sequence_name

[START WITH start_num]

[INCREMENT BY increment_num]

[{MAXVALUE maximum_num|NOMAXVALUE}]

[{MINVALUE minimum_num|NOMINVALUE}]

[{CYCLE|NOCYCLE}]

[{CACHE cache_num|NOCACHE}]

[{ORDER|NOORDER}]

说明:

start_num:序列开始整数

increment_num:每次增加的整数增量

maximum:序列最大整数

minimum:序列最小整数

CYCLE:循环生成

NOCYCLE:不循环生成,默认值

cache_num:保存在内存中的整数的个数

NOCACHE:不缓存任何整数

举例:

CREATE SEQUENCE seq_test;(默认值)

CREATE SEQUENCE seq_test START WITH 1 INCREMENT BY 2;

2、使用序列:

SELECT seq_test.nextval FROM dual;

insert into order_status2 (id) values (seq_test.nextval);

3、修改序列:

ALTER SEQUENCE语句来修改序列。可以修改的内容:

不能修改序列的初值

序列的最小值不能大于当前值

序列的最大值不能小于当前值

例如:ALTER SEQUENCE seq_test INCREMENT BY 3;

4、删除序列:

DROP SEQUENCE seq_test;

oracle怎么查询当前序列的值?

需要注意的是:

数据库连接成功后,初次执行这句话,会报异常,不能用。

如果不是你的语句单词拼写错误,就是因为没有先执行下边这句sql(select 序列名.nextval from dual;)。

也就是先去获取序列的当前值加上增量后的值。(不知道这是啥情况,没有去研究)

查询序列的值

当刚创建好序列后,不能直接查询当前序列的值,必须先用 nextval 查询下一个序列的值,之后才可以使用currval查询当前序列的值。

查询序列

第一次使用nextval 查询到的值就是 (start with n) .

之后就可以任意使用 currval 了。

当再次查询序列,它的 last_number 变为了序列的下一个值。

标签: Oracle如何使用序列 Oracle序列使用教程 查询当前序列的值 oracle怎么查询当前序列的值