• 技术文章 >数据库 >mysql教程

    什么是oracle序列

    长期闲置长期闲置2022-05-24 18:36:57原创157

    在oracle中,序列是用于产生一系列唯一数字的数据库对象;序列也就是一个序列号生成器,可以为表中的行自动生成序列号,主要的用途是生成主键的值,并且定义序列的用户必须具有CREATE SEQUENCE权限。

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

    什么是oracle序列

    序列: Sequence 是oracle提供的用于产生一系列唯一数字的数据库对象。由于oracle中没有设置自增列的方法,所以我们在oracle数据库中主要用序列来实现主键自增的功能。

    在Oracle数据库中,序列(sequence)其实就是一个序列号生成器,它可以为表中的行自动生成序列号,主要的用途是生成表的主键值。相当于SQL Server和MySQL中的自增字段。

    在SQL Server中可以在定义主键时使用identity关键字定义,在MySQL中可以在定义主键时使用increment关键字定义。在Oracle数据库中要想使用自增字段,必须先定义一个序列(sequence)对象,然后在插入数据时使用【序列对象名.nextval】在主键中插入自增数据。

    要定义序列,则定义序列的用户必须具有CREATE SEQUENCE权限。在Oracle数据库中,定义序列的语法如下:

    CREATE SEQUENCE 序列名 
    [START WITH n] 
    [INCREMENT BY n]
    [MAXVALUE n|NOMAXVALUE]
    [MINVALUE n|NOMINVALUE]
    [CACHE n|NOCACHE]
    [CYCLE|NOCYCLE]

    参数说明:

    (1)INCREMENT BY:定义序列的步长,n如果为正值,表示序列是一个递增序列;n如果为负值,表示序列是一个递减序列;如果省略,则默认值为1。

    (2)START WITH:定义序列的起始值,如果省略,则默认值为1。

    (3)MAXVALUE:定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。

    (4)MINVALUE:定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值定义,这时对于递减序列,系统能够产生的最小值是-10的26次方;对于递增序列,最小值是1。

    (5)CYCLE|NOCYCLE:表示当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环。

    (6)CACHE:定义存放序列的内存块的大小,默认为20。NOCACHE表示不对序列进行内存缓冲。

    示例如下:

    58.png

    扩展知识:

    修改序列

    格式:

    ALTER SEQUENCE name [INCREMENT BY n]
        [MINVALUE n | NO MINVALUE] 
        [MAXVALUE n | NO MAXVALUE ]
        [MINVALUE n | NO MINVALUE ]
        [CACHE n ] 
        [CYCLE | NO CYCLE]

    示例如下:

    59.png

    推荐教程:《Oracle视频教程

    以上就是什么是oracle序列的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:oracle
    上一篇:mysql设计概念及多表查询和事务操作 下一篇:oracle怎么转移表的表空间
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• oracle怎么去掉换行符• oracle怎么删除session• oracle怎么关闭em• oracle怎么实现读写分离• oracle转为数字的函数是什么
    1/1

    PHP中文网