Oracle中的sequence如何使用
本篇内容介绍了“Oracle中的sequence如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
sequence是Oracle中的序列,可以实现字段的自增或自减效果
Oracle与MySQL、SQL server不同,没有直接实现字段自增的功能,需要我们使用自增序列去实现
如:
--设置自增序列,名称为"seq_userinfo",名字任意命名create sequence seq_userinfo increment by 1--每次+1 start with 1--从1开始 nomaxvalue--不限最大值 nominvalue--不限最小值 cache 20;--设置取值缓存数为20
1、create sequence seq_userinfo
sequence :为关键字,表示"序列"
seq_userinfo:为序列的名称,我们可以任意命名(注意符合命名规范即可)
2、increment by 1
increment :表示自增
by 1:表示每次变动1个整数单位
3、start with 1
表示从1开始
start with 200 :表示从200开始自增
4、nomaxvalue
表示不限制最大值,我们也可以手动设置最大值,如:
maxvalue 99999999999 --最大值为99999999999
5、nominvallue
表示不限制最小值
6、cache 20
这个值特别重要
Oracle默认cache=20
cache的作用:当设置cache=20,第一次新增时,会往Oracle服务器的缓存中,存储20个整数值,例如,我们第一次新增是从1开始,就会把1到20这个20个数字存储到Oracle缓存中,当下一次新增时,直接从缓存中获取数字。
优点:提高了insert时的效率,这里的cache效果与Java中的连接池效果是一致的!
缺点:Oracle服务器会存在不确定因素,从而导致缓存被刷新,从而导致cache还没使用完,cache就失效了,不能保证自增序列的连续性。
说白了就是:缓存中存储1到20个数字,用到10的时候,这一次的cache就被刷新失效了,下一次再新增时,会重新设置缓存(从21开始,再拿20个数字),从而导致自增的序列出现数字不连续的情况。在后端系统中,一般是不需要保证自增序列的连续性的,因此,设置cache值是必要的。
“Oracle中的sequence如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341