• 技术文章 >数据库 >Oracle

    oracle怎么修改sequence

    长期闲置长期闲置2022-05-25 16:19:23原创196

    方法:1、用DROP SEQUENCE语句删除sequence,然后用Create sequence语句重新创建一个;2、用Increment By修改序列初始值,语法为“ALTER SEQUENCE...INCREMENT BY 数值”。

    本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。

    oracle怎么修改sequence

    Oracle 序列(Sequence)主要用于生成流水号,在应用中经常会用到,特别是作为ID值,拿来做表主键使用较多。

    但是,有时需要修改序列初始值(START WITH)时,有同仁使用这个语句来修改:alter sequence sequencename start with xxxxxxxx。但是,在Oracle DB中,修改序列没有这样的语法。下面介绍几种修改方式:

    1、先删除序列,然后重新创建。

    这个方法比较暴力,也比较方便,如果序列有在用,会影响应用的正常使用。

    如果不加条件语句,默认创建的序列格式如下:

    31.png

    语义Semantics:

    INCREMENT BY:指定序列增长步长。可以为正(升序)、负整数(降序),但不能为0。最高精度28。

    START WITH: 指定序列起始数。默认为序列最小值。

    MAXVALUE :指定序列最大值。最大28位。必须大于等于起始值且大于等于序列最小值。

    NOMAXVALUE: 无最大值(实际为10^27或-1)。default

    MINVALUE :指定序列最小值。

    NOMINVALUE :无最小值(实际为1或-10^26)。Default

    CYCLE :指定序列达到最大值或最小值后继续从头开始生成。

    NOCYCLE :不循环生成。Default.

    CACHE :指定数据库内存中预分配的序列值个数,以便快速获取。最小cache值为2。

    删除序列必须要有drop any sequence权限

    语法:

    32.png

    例子:

    DROP SEQUENCE oe.customers_seq;

    2、通过Increment By来实现修改初始值。

    例如:若序列名称是SEQ_TEST,初始值是13,而现在要设置初始值为1013,Increment By值为:1000(1013-13)

    1) 执行:

    ALTER SEQUENCE SEQ_TEST INCREMENT BY 1000;

    2) 执行:

    SELECT SEQ_TEST.NEXTVAL FROM DUAL;

    3) 执行:

    ALTER SEQUENCE SEQ_TEST INCREMENT BY 1;

    推荐教程:《Oracle视频教程

    以上就是oracle怎么修改sequence的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:oracle
    上一篇:Oracle的12505错误怎么解决 下一篇:什么是oracle表分区
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 怎么删除oracle当前连接的用户• oracle索引表空间怎么修改• oracle怎么查询会话数• oracle怎么判断表空间是否自动扩展• oracle怎么解决1658错误
    1/1

    PHP中文网