关于oracle的自增 sequenceITeyeguojizaixian - 牛牛娱乐

关于oracle的自增 sequenceITeyeguojizaixian

2019-02-01 11:10:46 | 作者: 诺诺 | 标签: 比方,运用,句子 | 浏览: 684

在oracle中sequence就是所谓的序列号,每次取的时分它会主动添加,一般用在需求按序列号排序的当地。

1、Create Sequence 你首要要有CREATE SEQUENCE或许CREATE ANY SEQUENCE权限, CREATE SEQUENCE emp_sequence INCREMENT BY 1 每次加几个 START WITH 1 从1开端计数 NOMAXVALUE 不设置最大值 NOCYCLE 一向累加,不循环 CACHE 10; 一旦界说了emp_sequence,你就能够用CURRVAL,NEXTVAL CURRVAL=回来 sequence的当时值 NEXTVAL=添加sequence的值,然后回来 sequence 值

比方: emp_sequence.CURRVAL emp_sequence.NEXTVAL 能够运用sequence的当地: - 不包括子查询、snapshot、VIEW的 SELECT 句子 - INSERT句子的子查询中 - NSERT句子的VALUES中 - UPDATE 的 SET中 能够看如下比方: INSERT INTO emp VALUES (empseq.nextval, LEWIS, CLERK,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掉(shutdownabort),cache中的sequence就会丢掉. 所以能够在create sequence的时分用nocache避免这种状况。

2、Alter Sequence 你或许是该sequence的owner,或许有ALTER ANY SEQUENCE 权限才干改动sequence.能够alter除start至以外的一切sequence参数.假如想要改动start值,有必要 drop sequence 再 re-create. Alter sequence 的比方 ALTER SEQUENCE emp_sequence INCREMENT BY 10 MAXVALUE 10000 CYCLE 到10000后从头开端 NOCACHE ; 影响Sequence的初始化参数: SEQUENCE_CACHE_ENTRIES =设置能一起被cache的sequence数目。 能够很简单的Drop Sequence DROP SEQUENCE order_seq;文章来历https://oracle.chinaitlab.com/exploiture/35308.html

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表牛牛娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章