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插入主键值。

  • 相关阅读:
    Swift基础
    win32多线程 (六)信号量 Synchronization
    win32 多线程 (五)Event
    win32多线程 (四) Mutex
    win32多线程(三) 死锁
    win32多线程 (二)线程同步之临界区 (critical sections)
    win32多线程 (一) 线程创建与结束等待
    简单Factory模式
    单键模式
    jquery中click事件重复绑定问题
  • 原文地址:https://www.cnblogs.com/pangguoming/p/9082498.html
Copyright © 2011-2022 走看看