zoukankan      html  css  js  c++  java
  • oracle对象之序列

    是数据库对象,利用它可生成唯一的整数,序列对我们来说是比较重要的一个对象。

    MySQL的ID(主键)是可以自增长的

    但是Oracle没有这个东西,而Oracle咱们怎么来生成自动的id呢,就需要使用序列

    一般使用序列自动地生成表主键值或唯一键值。

    注:序列不属于任何一张表。因为它和表是同级的对象。

    一般来说,一个序列对应一张表

    语法:

    CREATE SEQUENCE [user.]sequence_name
    [increment by n]
    [start with n]
    [maxvalue n|]
    [minvalue n ];
    [cache]

         [NOCYCLE|CYCLE]

         INCREMENT BY: 指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为1。

         START WITH:指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。

         MAXVALUE:指定序列可生成的最大值。

         MINVALUE:指定序列的最小值
       NOCYCLE:一直累加,不循环

          CYCLE:累加到最大值循环

    --查看数据库中当前用户创建的所有序列:
    select SEQUENCE_NAME from user_sequences;

    方式二:使用工具创建序列

    注:生成序列前需要给咱们的用户开放创建序列的权限

    第一步:登录plsql,左边找到Sequences,右键新建,如下

    使用序列生成主键

    序列的值:

    --currval :返回序列的当前值

    --nextval 返回序列首次引用时的起始值,以后使用nextval的引用将使用increment by 子句增加序列值,并返回新值。

    查看当前序列的方式:select stu_seq.currval from dual

    使用序列的方式:select stu_seq.nextval from dual

    我们以后生成主键就可以直接这样写:

    insert into employees(employees_id,last_name….)

           values(emp_seq.nextval,’zhang’……)

     2、修改序列语法:

    ALTER SEQUENCE 序列名 
      [INCREMENT BY n] 
      [{MAXVALUE/ MINVALUE n|NOMAXVALUE}] 
      [{CYCLE|NOCYCLE}] 
      [{CACHE n|NOCACHE}];

    *不能修改序列的初始值

    3、删除序列语法:

    DROP SEQUENCE 序列名;

    hibernate使用oracle:

    采用数据库提供的sequence机制生成主键,需要数据库支持sequence。如oralce、DB、SAP DB、PostgerSQL、McKoi中的sequence。MySQL这种不支持sequence的数据库则不行(可以使用identity)。

    <generator class="sequence">

    <param name="sequence">hibernate_id</param>

    </generator>

    <param name="sequence">hibernate_id</param> 指定sequence的名称

    Hibernate生成主键时,查找sequence并赋给主键值,主键值由数据库生成,Hibernate不负责维护,使用时必须先创建一个sequence,如果不指定sequence名称,则使用Hibernate默认的sequence,名称为hibernate_sequence,前提要在数据库中创建该sequence。

    特点:只能在支持序列的数据库中使用,如Oracle。

  • 相关阅读:
    搭建基于nginx-rtmp-module的流媒体服务器
    mysql length和char_length
    mediainfo使用
    linux下ftp服务器搭建
    排序算法
    设计模式之注册树模式
    dock
    linux下安装使用tar
    linux下安装rar
    linux 内存操作相关命令
  • 原文地址:https://www.cnblogs.com/spdboke/p/6867586.html
Copyright © 2011-2022 走看看