image

编辑人: 舍溪插画

calendar2025-03-21

message9

visits991

Oracle基本操作笔试面试题之sequence操作

Sequences创建

1)创建 sequence

先要有 create sequence或者 create any sequence权限,执行以下命令就行:

create sequence sequence_name

increment by name_values1 —每次加几个

start with name_values1   — 1开始计数

nomaxvalue     —不设置最大值

nocycle       —一直累加,不循环

cache 10;

一旦定义了 sequence_name,你就可以用 currvalnextval

currval=返回 sequence的当前值

nextval=增加 sequence的值,然后返回 sequence

比如:

sequence_name.currval

sequence_name.nextval

可以使用 sequence的地方:

不包含子查询、snapshotview select语句

– insert语句的子查询中

– nsert语句的 values

– update set

可以看如下实例:

insert into table_name values

(empseq.nextval, ‘row1’, ‘row2’,7902, sysdate, 1200, null, 20);

select empseq.currval from dual;

但是要注意的是:

第一次 nextval返回的是初始值;随后的 nextval会自动增加你定义的 increment by值,然后返

增加后的值。currval总是返回当前 sequence的值,但是在第一次 nextval初始化之后才能使用

currval,否则会出错。

一次 nextval会增加一次 sequence的值,所以如果你在同一个语句里面使用多个 nextval,其值就

是不一样的.

如果指定 cache值,oracle就可以预先在内存里面放置一些 sequence,这样存取的快些。cache

里面的取完后,

oracle自动再取一组到 cache。使用 cache或许会跳号,比如数据库突然不正常 down掉(shutdown

abort),cache中的 sequence就会丢失.

所以可以在 create sequence的时候用 nocache防止这种情况。

2alter sequence

你或者是该 sequence owner,或者有 alter any sequence权限才能改动 sequence.可以 alter

start至以外的所有 sequence参数.如果想要改变 start值,必须 drop sequence re-create .

alter sequence的实例

alter sequence sequence_name

increment by 10

maxvalue 10000

cycle   — 10000后从头开始

nocache;

影响 sequence的初始化参数:

sequence_cache_entries =设置能同时被 cache sequence数目。

2Sequences删除

drop sequence sequence_name;

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:Oracle基本操作笔试面试题之sequence操作

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share