欢迎来到天天文库
浏览记录
ID:39466840
大小:18.25 KB
页数:6页
时间:2019-07-04
《OracleSequence》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1)建立序列命令CREATESEQUENCE[user.]sequence_name[incrementbyn][startwithn][maxvaluen
2、nomaxvalue][minvaluen
3、nominvalue];INCREMENTBY:指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为1。STARTWITH:指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。MAXVALUE:指定序列可生成的最
4、大值。NOMAXVALUE:为升序指定最大值为1027,为降序指定最大值为-1。MINVALUE:指定序列的最小值。NOMINVALUE:为升序指定最小值为1。为降序指定最小值为-1026。2)更改序列命令ALTERSEQUENCE[user.]sequence_name[INCREMENTBYn][MAXVALUEn
5、NOMAXVALUE][MINVALUEn
6、NOMINVALUE];修改序列可以:?修改未来序列值的增量。?设置或撤消最小值或最大值。?改变缓冲序列的数目。?指定序列号是否是有序。3)删除序列命令DROPSEQUENCE[u
7、ser.]sequence_name;从数据库中删除一序列。Oracle中SEQUENCES的使用Oracle提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方.下面介绍一下关于sequence的生成,修改,删除等常用的操作:1.创建Sequence使用如下命令新建sequence(用户需要有CREATESEQUENCE或者CREATEANYSEQUENCE权限):CREATESEQUENCEtest_sequenceINCREMENTBY1 --每次加的个数据STARTWITH1 -
8、-从1开始计数NOMAXVALUE --不设置最大值NOCYCLE --一直累加,不循环CACHE10;[注意]如果设置了CACHE值,ORACLE将在内存里预先放置一些sequence,以使存取速度更快。cache里面的取完后,oracle自动再取一组到cache。但是,使用cache可能会跳号,当遇到数据库突然异常down掉(shutdownabort),cache中的sequence就会丢失.因此,推荐在createsequence的时候使用nocache选项。2.使用sequence:sequence.CURRVAL--
9、返回sequence的当前值sequence.NEXTVAL--增加sequence的值,然后返回sequence值[注意]第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENTBY值,然后返回增加后的值。CURRVAL总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。sequence存储在数据字典中,存储于user_sequenc
10、es表LAST_NUMBER为最终序列号,也就是sequence游标当前所在的位置。//getsequencelast_numberSELECTLAST_NUMBERFROMUSER_SEQUENCESWHERESEQUENCE_NAME=TEST_SEQNAME//NEXTVAL使游标指向下一位(增一或减一)SELECTSEQNAME.NEXTVALFROMUSER_SEQUENCES得到下一位游标的值3.修改Sequence用户必须拥有ALTERANYSEQUENCE权限才能修改sequence.可以alter除start至以外的所有s
11、equence参数.如果想要改变start值,必须dropsequence再re-create.命令格式如下:ALTERSEQUENCEtest_sequenceINCREMENTBY10MAXVALUE10000CYCLE --到10000后从头开始NOCACHE;4.删除Sequence其他版本oracle中没有自增类型的字段的,所以通常情况下需要定义一个sequence来作为自动增长类型字段的数据。 于是记录了一些关于oraclesequence的资料,已备查用! Oracle中的序列(sequence) 1:如何定义一个序列
12、 仅向前的数字变量(和SQL中的自动编号有点像identity(1,2)) 格式: createsequence<序列名称> startwith<起始数> increm
此文档下载收益归作者所有