一. oracle中如何实现一列的规律增长呢(通常是指number类型的列)?
这就需要借助序列来实现了;
1. 什么是序列? 可以理解为序列是一组sql语法创建出来的函数,该函数中定义
好了返回值的规则,每次调用都会在上一次的返回值基础上在产生一个符合规则
的结果.(类似于python中的生成器).
2. 创建序列的语法(把定义的序列起名为seq1):
create sequence seq1
start with 1 # 设定从1开始生成
increment by 1 # 设定步长为1
minvalue 1 # 设定最小值为1
maxvalue 100 # 设定最大值,即最大到100
cycle # 设定到100后循环从1开始,如不想循环则用nocycle
nocache; # 不使用缓存, 或用: cache 10来指定一次缓存几个值
如指定cache 10,其会一次生成10个值放入内存,再nextval时直接到内存中拿,而不用再调用
序列生成,等10个用完后才会调用序列再生成10个. 优点是效率高,缺点时数据库异常时,这些放
到内存中的值会丢失. 即所谓的跳号现象.
3.序列创建后是全局的,可被任一用户直接使用,序列的返回值是不会因为不同用户而不同.
select seq1.nextval from dual; # 从序列中取值
select seq1.currval from dual; # 查看当前序列的值
注意,序列在定义后,必须先nextval再currval,否则会报错
总结以上是内存溢出为你收集整理的oracle序列相关全部内容,希望文章能够帮你解决oracle序列相关所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)