前言:
在项目中有时我们会需要让某个字段自增长,如果每次都从数据库读出来之后,再加上固定的值,一是比较麻烦,二是可能有个时间差导致数据不准确。所以可以在数据库定义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
本文详细介绍Oracle数据库中SEQUENCE的创建、使用、参数修改及删除方法。SEQUENCE用于生成连续整数,适用于字段自增长场景,避免了直接操作数据库读取和更新的复杂性和潜在的数据不准确性。文章还提供了具体的SQL语句示例。
1229

被折叠的 条评论
为什么被折叠?



