如何在Oracle中使用Sequence

 我来答
小凯UE59
2013-11-03 · TA获得超过156个赞
知道答主
回答量:113
采纳率:0%
帮助的人:114万
展开全部
二者的区别
Oracle中自增字段的两种方法的比较(Trigger和Sequence
创建sequence的语法很简单,如下
create sequence Sequence_name
increment by 1 --表示从1开始计值
start with 1 --每次增长1
nomaxvalue / maxvalue999999 --有两个可选值,要么无最大值,要么指定最大值
minvalue 1 / nominvalue --同maxvalue
cycle --表示达到最大值后从头开始,也可以为nocycle
cache 10 --指定cache的值。如果指定CACHE值,oracle就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。
order;--指定排序
序列提供两个方法,NextVal和CurrVal。顾名思义,NextVal为取序列的下一个值,一次NEXTVAL会增加一次sequence的值;CurrVal为取序列的当前值。例如,插入记录时
insert tablename(id) values(sequence_id.nextval);--sequence_id为序列名
但是要注意的是:第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL总是返回当前sequence的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。
来个小插曲,我使用powerdesign进行数据库设计,但是powerdesigner对oracle支持好像不是很好(或者那里没有设置好?所以大家在键序列的时候一定要注意哦
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式