oracle数据库的sequence序列号的用法
2016-12-28 16:47
190 查看
Oracle中的序列sequence
首先看一个定义好的序列create sequence TUSERQUESSEQ //创建一个名为TUSERQUESSEQ的序列
minvalue 1 //该序列的最小值为1
maxvalue 9999999 //最大值为9999999
start with 1 //从1开始自增
increment by 1 //每次增加1
cache 20
cycle //如果增加到了最大值9999999就重新循环
order;
下面说一下cache选项:
如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些.cache里面的取完后,oracle自动再取一组到cache.使用cache或许会跳号,比如数据库突然不正常down掉(shutdown
abort),cache中的sequence就会丢失.
所以可以在create sequence的时候用nocache防止这种情况。
order选项:
order选项解释的出处[http://topic.csdn.net/u/20070706/13/a0d56107-8aeb-47df-bdb4-9c36dc998171.html]
1.保证序列号按请求顺序产生.如果你想以序列号作为timestamp(时间戳)类型的话,可以采用该选项.对于将序列用于生成主键来说,约定顺序通常并不重要.
2.ORDER和NOORDER的区别表现在并行服务和独占服务之间.打个比方:双CPU对同一个oracle DB中的ABC sequence申请序号时,这时就有两个请求A和B,假设A请求在前B在后,现在ABC序列中的值为9.如果添加了ORDER选项,那么一定是A请求到9,B请求到10.但如果没有添加此选项,则有可能B请求到9,A请求到10. 在单CPU中,可以用Java摸拟多线程作测试
--------------------------------------------------------------------------------------------------------------------------
sequence不属于某个表,也不属于某个字段,sequence仅仅属于某个用户.其实在创建了sequence后,每个表都可以使用这个sequence,但是这样会引起应用的很多麻烦.因此,建议每个表都使用一个sequence。
查看sequence:select * from user_sequences
删除sequence:drop sequence 序列名称
相关文章推荐
- Oracle数据库中序列(SEQUENCE)的用法详解
- Oracle数据库中Sequence的用法
- Oracle数据库中序列(SEQUENCE)的用法详解
- 【转】Oracle数据库中Sequence的用法
- 转--Oracle数据库中序列(SEQUENCE)的用法详解
- Oracle数据库中序列(SEQUENCE)的用法和实例需求
- oracle数据库中sql%notfound的用法详解
- ORACLE基础 001 SEQUENCE用法
- jdbc读取新插入Oracle数据库Sequence值的5种方法
- [转](转自CTO50熔岩的leizhimin)sequence用法
- Oracle数据库中的临时表用法
- oracle数据库定时任务dbms_job的用法详解
- oracle数据库定时任务dbms_job的用法详解
- ORACLE中 SEQUENCE自动增长 用法
- 往Oracle数据库中插入日期型数据(to_date的用法)
- 往Oracle数据库中插入日期型数据(to_date的用法)
- @GeneratedValue 四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO
- Oracle数据库合并行记录,【WMSYS.WM_CONCAT】 函數的用法 ----【行列转换】
- Oracle数据库中JOB与存储过程的接合用法!