在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(序列)使用的文章就介绍到这了,更多相关Oracle sequence序列内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:Oracle中sequence(序列)使用方法详解
- redis清除数据 2023-09-13
- SQL Server 2022 AlwaysOn新特性之包含可用性组详解 2023-07-29
- MySQL8.0.28安装教程详细图解(windows 64位) 2023-07-26
- Numpy中如何创建矩阵并等间隔抽取数据 2023-07-28
- Oracle 删除大量表记录操作分析总结 2023-07-23
- SQLSERVER调用C#的代码实现 2023-07-29
- 搭建单机Redis缓存服务的实现 2023-07-13
- 基于Python制作一个简单的文章搜索工具 2023-07-28
- 在阿里云CentOS 6.8上安装Redis 2023-09-12
- Mongodb启动报错完美解决方案:about to fork child process,waiting until server is ready for connections. 2023-07-16