首页 > 代码库 > oracle_sequence用法

oracle_sequence用法

1.    About Sequences(关于序列)

  序列是数据库对象一种。多个用户可以通过序列生成连续的数字以此来实现主键字段的自动、唯一增长,并且一个序列可为多列、多表同时使用。序列消除了串行化并且提高了应用程序一致性。

2.   Creating Sequences(创建序列)

  前提:Prerequisites

    在自己模式下创建序列需要create sequence权限

    在其他用户模式下创建序列需要create any sequence权限

  语法:Syntax

    create sequence seq_sequenceName

      increment by: 指定序列增长步长,可以为正(升序)、负整数(降序),但不能为0

      start with:指定序列起始数,默认为序列最小值

      maxvalue:指定序列最大值

      nomaxvalue:无最大值(default)

      minvalue:指定序列最小值

      nominvalue:无最小值(default)

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

      nocycle:不循环生成(default)

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

  例子:

    SQL> create sequence seq_common

          increment by 2

          start with 5;

3.   ALTER SEQUENCE(修改序列)

  前提:Prerequisites

    修改自己模式序列需要alter object权限

    修改其他模式序列需要alter any sequence权限

  语法:Syntax

    alter sequence seq_sequenceName

    1)如果想以不同的数字重新开始序列,必须删除重建

    2)修改的maxvalue必须大于序列当前值

  例子:

    SQL> alter sequence seq_common

          maxvalue 100;

    SQL> alter sequence seq_common

          cache 3;

4.   DROP SEQUENCE(删除序列)

  前提:Prerequisites

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

  语法:Syntax

    drop sequence seq_sequenceName

  例子:

    SQL> drop sequence seq_common;

oracle_sequence用法