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

  • 相关阅读:
    TStringList 常用操作(转自南山古陶)
    在Delphi中使用Indy控件实现邮件群发
    GSM手机SMS编码解码
    建别人进不了删不掉的文件夹
    播放 wav 文件
    delphi inherited,纯虚
    PDU编码规则
    sql函数
    基于GPRS的LED电子显示屏
    结对编程 队友代码分析
  • 原文地址:https://www.cnblogs.com/itrena/p/9082499.html
Copyright © 2011-2022 走看看