Oracle 序列(Sequence)主要用于生成流水号,在应用中经常会用到,特别是作为ID值,拿来做表主键使用较多。
但是,有时需要修改序列初始值(START WITH)时,有同仁使用这个语句来修改:alter sequence sequencename start with xxxxxxxx。但是,在Oracle DB中,修改序列没有这样的语法。下面介绍几种修改方式:
1.先删除序列,然后重新创建。不过这不是当前要讲的重点。这个方法比较暴力,也比较方便,如果序列有在用,会影响应用的正常使用。
2.写个循环来增加。如果需要增加500,写个循环运行500次SELECT SEQUENCE_NAME.NEXTVAL FROM DUAL;
3.通过Increment By来实现修改初始值。
例如:若序列名称是SEQ_TEST,初始值是13,而现在要设置初始值为1013,Increment By值为:1000(1013-13)

/** 设置每次加 1000 */
ALTER SEQUENCE AUTHSYS.seq_sys_user INCREMENT BY 1000;
/** 查询目前序列 */
SELECT AUTHSYS.seq_sys_user.NEXTVAL FROM DUAL;
/** 设置每次加 1 */
ALTER SEQUENCE AUTHSYS.seq_sys_user INCREMENT BY 1
Last modification:April 1, 2022
如果觉得这篇技术文章对你有用,请随意赞赏