Oracle37SEQUENCE 自增长 序列化

Posted huashengweilong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle37SEQUENCE 自增长 序列化相关的知识,希望对你有一定的参考价值。

前言:

在项目中有时我们会需要让某个字段自增长,如果每次都从数据库读出来之后,再加上固定的值,一是比较麻烦,二是可能有个时间差导致数据不准确。所以可以在数据库定义SEQUENCE

正文:

1,创建

CREATE SEQUENCE seqTest
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXvalue -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10; --设置缓存cache个序列,这样取得快一点。但如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为NOCACHE

2,使用

seqtest.currval:返回当前值。在第一次nextval初始化后才能使用,否则会报错

seqtest.nextval:增加,并返回增加后的值

insert into table_name(id, name)values(seqTest.Nextval, sequence 插入测试);

3,更改参数

拥有ALTER ANY SEQUENCE权限才能改动sequence;除start以外的所有参数都可以修改;如果想要改变start值,必须drop sequence再re-create(删除再重新创建)。

alter sequence seqTest maxvalue 9999999;

4,删除

DROP SEQUENCE seqTest; 

参考博客:

ORACLE SEQUENCE用法 - 猥琐丶欲为 - 博客园
https://www.cnblogs.com/hyzhou/archive/2012/04/12/2444158.html

以上是关于Oracle37SEQUENCE 自增长 序列化的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis-Plus 设置Oracle 自增长序列(Sequence)

Oracle 怎样查询所有自增的序列名

Oracle11g13_序列

MySQL实现类似Oracle序列的方案

Oracle中Sequence使用

oracle数据库怎么建sequences作为自增长序列