zoukankan      html  css  js  c++  java
  • Sequence在Oracle中的使用

      Oracle中,当需要建立一个自增字段时,需要用到sequence。sequence也可以在mysql中使用,但是有些差别,日后再补充,先把oracle中sequence的基本使用总结一下,方便日后查阅。

    1、创建sequence

    [sql] view plain copy
     
    1. create sequence SEQ_ON_USER  
    2. minvalue 1  
    3. maxvalue 999999999999999999999999999  
    4. start with 1  
    5. increment by 1  
    6. nocache;    

    说明:

     minvalue:序列最小值

     maxvalue/nomaxvalue:序列最大值/没有最大值

     start with 1:序列从1开始

     increment by 1:每次增加1

     cache/nocache:nocache不缓存。cache缓存。开启缓存,效率高,只是如果数据库宕机了,缓存丢失,会出现序列跳号情况。

    2、查看已有sequence

    [sql] view plain copy
     
    1. select * from user_sequences;  

    3、删除指定sequence

    [sql] view plain copy
     
    1. DROP SEQUENCE SEQ_ON_USER;  

    4、查看指定sequence的当前值:

    两种方式:

    [sql] view plain copy
     
    1. select last_number from user_sequences wheresequence_name='SEQ_ON_USER';  
    [sql] view plain copy
     
    1. select SEQ_ON_USER.nextval from sys.dual;  

            5、创建触发器使用sequence设置主键自动插入。

    [sql] view plain copy
     
    1. create or replace trigger "SEQ_ON_USER_GENERATOR" before  
    2.   insert on databasename1.T_USER for each row  
    3.   declare  
    4.          mid number,  
    5.   begin  
    6.     select SEQ_ON_USER.nextval into mid from dual;  
    7.     :new.id:=mid;  
    8.    end  
    9.   
    10. create trigger SEQ_ON_USER_Trigger   
    11.   
    12. before insert on T_USER for each row   
    13. begin   
    14. select SEQ_ON_USER.nextval into :new.id from dual;   
    15. end SEQ_ON_USER_Trigger;   

            6、代码中使用sequence.nextval插入主键值。

  • 相关阅读:
    Weebly轻松创建个人网站
    人生如游戏
    1 欧拉角与四元数计算机动画笔记
    图形学相关的一些数学基础书
    1047 Student List for Course (25 分)
    1124 Raffle for Weibo Followers (20 分)
    1065 A+B and C (64bit) (20 分)
    1036 Boys vs Girls (25 分)
    1039 Course List for Student (25 分)
    1054 The Dominant Color (20 分)
  • 原文地址:https://www.cnblogs.com/pangguoming/p/9082498.html
Copyright © 2011-2022 走看看