zoukankan      html  css  js  c++  java
  • oracle中的序列

    一、序列:

       自动提供唯一的数值、共享对象、主要用于提供主键值、将序列值装入内存可以提高访问效率。

       也可理解为序列是一个计数器,它并不会与特定的表关联。通过创建Oracle序列实现表的主键自增。

       序列的用途一般用来填充主键和计数。

    二、语法:

      创建序列:

          CREATE SEQUENCE 序列名
          [INCREMENT BY n]       --  定义序列的步长  如省略则默认为1、如为负数则递减
          [START WITH n]       --  定义序列的起始值   默认为1
          [{MAXVALUE/ MINVALUE n|NOMAXVALUE}]    定义序列的最大或最小值、给定其范围
          [{CYCLE|NOCYCLE}]             是否循环
          [{CACHE n|NOCACHE}];           是否缓存

      删除序列:

          DROP SEQUENCE 序列名;

    三、序列使用

        CURRVAL: 返回序列的当前值。
        NEXTVAL: 序列递增,返回下一值。

    、序列的应用

    假设有表TEST,其主键为TEST_ID
    1)建立递增序列SEQ_TEST:
    create sequence SEQ_TEST
    increment by 1
    start with 1
    minvalue 1 nomaxvalue
    nocylce

    2)建立触发器,当有数据插入表TEST时,使用Oracle序列为其去的递增的主键值
    create trigger TRG_TEST before insert on TEST
    for each row
    begin
    select SEQ_TEST.nextval into :new.TEST_ID from dual;
    end;

    至此,创建完成!

    当然也可以不使用触发器,而是在插入时在sql语句中调用序列,例如
    insert into TEST values(SEQ_TEST.nextval, ……)

    代码如下图:

     
  • 相关阅读:
    Perl Resources
    使用Perl管理Oracle数据库
    Tomcat 发布部署jsp网站—-使用自己的ip访问jsp网站
    Lode's Computer Graphics Tutorial Image Filtering
    Java Image Filters
    ZPhotoEngine超级算法库
    ps亮度对比度算法
    滤镜艺术---新海诚(你的名字)滤镜特效的实现解密
    Cocoa-GL-Tutorial
    Learning Cocoa with Objective-C
  • 原文地址:https://www.cnblogs.com/mauan/p/7232264.html
Copyright © 2011-2022 走看看