• Oracle(创建序列)


    概念:

    所谓序列,在oracle中就是一个对象,这个对象用来提供一个有序的数据列,这个有序的数据列的值都不重复。

    1.序列可以自动生成唯一值

    2.是一个可以被共享的对象

    3.典型的用来生成主键值的一个对象

    4.可以替代应用程序代码

    5.sequence的值存放在缓存中时可以提高访问效率。

    创建序列语法:

    CREATE SEQUENCE name

    [INCREMENT BY n]

    [START WITH n]              

    [{MAXVALUE n | NOMAXVALUE}]

    [{MINVALUE n | NOMINVALUE}]

    [{CYCLE | NOCYCLE}]

    [{CACHE n | NOCACHE}]

    note:

    1.increment by n:表明值每次增长n(步长)

    2.start with n: n开始

    3.{MAXVALUE n | NOMAXVALUE}: 设置最大值

    4.{MINVALUE n | NOMINVALUE}: 设置最小值,start with不能小于最小值。

    5.CYCLE | NOCYCLE          : 是否循环,建议不使用

    6.CACHE n | NOCACHE     是否启用缓存。

    例如:

    create sequence emp_id_seq

    start with 1

    increment by 1

    nomaxvalue

    nominvalue

    nocycle

    nocache;

    note:可以通过数据字典user_sequences查看当前用户所拥有的序列信息。

    例如:

    select sequence_name,min_value,max_value,last_number

    from user_sequences

    where sequence_name = 'EMP_ID_SEQ';

    序列的属性(伪列)

    1.nextval : 返回下一个可用的序列值。

    就算是被不同的用户调用,每次也返回一个唯一的值。

    2.currval :获取序列当前的值。

    currval调用之前,必须保证nextval已经获取过一次值。

    使用sequence

    例如:

    1.向表中插入数据

    insert into emp values(emp_id_seq.nextval);

    2.查看序列的当前值

    select emp_id_seq.currval from dual;

    3.获取序列的下一个值。

    select emp_id_seq.nextval from dual;

    缓存:

    使用缓存可以提高sequence的访问效率

    修改sequence

    ALTER SEQUENCE name

    [INCREMENT BY n]      

    [{MAXVALUE n | NOMAXVALUE}]

    [{MINVALUE n | NOMINVALUE}]

    [{CYCLE | NOCYCLE}]

    [{CACHE n | NOCACHE}]

    note

    1.必须是序列的拥有者,或者具有alter权限

    2.修改后的序列,只对之后的值起作用。

    3.不能修改start with,如果想改,只能删除,重新创建,启动。

    删除sequence

    drop sequence seq_name;

    例如:

    drop sequence emp_id_seq;

  • 相关阅读:
    outlook 2007无法连接exchange server时的解决方法
    Source模式和Design模式无法转换 在VS2008
    自定义CreateUserWizard 控件
    自定义CreateUserWizard 控件
    锋利的jQuery第三章
    Repeater控件的ItemDataBound事件
    jquery获取select,option所有的value和text
    Jquery中的缩写总结
    asp.net本质论学习笔记第二章
    jquery的append函数
  • 原文地址:https://www.cnblogs.com/yzqm666/p/5886914.html
Copyright © 2020-2023  润新知