您的位置:首頁技術文章
文章詳情頁

oracle數據庫表實現自增主鍵的方法實例

瀏覽:13日期:2023-03-12 15:24:57
目錄
  • 一、前言
  • 二、實現主鍵自動增長
    • 1、創建表格
    • 2、創建自增序列
    • 3、創建觸發器
    • 4、測試新增語句
  • 總結

    一、前言

    幾天建表需要用到自增主鍵,于是使用序列(sequence)和觸發器(trigger)來實現主鍵自增,在網上查了一些知識,順便記錄下;

    二、實現主鍵自動增長

    1、創建表格

     CREATE TABLE "APP_COMM_T"
       (    
        "ID" NUMBER,
        "BASE_KEY" VARCHAR2(50 BYTE),
        "BASE_NAME" VARCHAR2(100 BYTE),
        "BASE_DESC" VARCHAR2(50 BYTE),
        "BASE_TYPE" VARCHAR2(10 BYTE),
        "BASE_SON" VARCHAR2(1 BYTE),
         CONSTRAINT "APP_COMM_T_PK" PRIMARY KEY ("ID")
       )
    

    注:必須標明ID為主鍵

    2、創建自增序列

    create sequence SEQ_APP_COMM_T
     minvalue 1 
     maxvalue 999999   
     increment by 1    
     start with 1;
    

    創建序列參數格式描述:

    CREATE SEQUENCE SEQNAME //序列名字

    MINVALUE 1 //最小值;設置NOMINVALUE表示無最大值

    MAXVALUE 1.0E20 //最大值;設置NOMAXVALUE表示無最大值

    INCREMENT BY 1 //每次自增1, 也可寫非0的任何整數,表示自增,或自減

    START WITH 1 //以該值開始自增或自減

    3、創建觸發器

     create trigger TRIG_APP_COMM_T      
    before insert on APP_COMM_T
    for each row   
    begin       
    select SEQ_APP_COMM_T.nextval into :new.id from dual;  
    end; 
    

    創建觸發器描述:

    before insert on APP_COMM_T

    /*觸發條件:當表APP_COMM_T執行插入操作時觸發此觸發器*/

    for each row   /*對每一行都檢測是否觸發*/ 

    begin       
    /*觸發后執行的動作,在此是取得序列SEQ_APP_COMM_T的下一個值插入到表APP_COMM_T中的id字段中*/

    4、測試新增語句

    已實現自增無需添加主鍵id

    INSERT INTO APP_COMM_T (BASE_KEY,BASE_NAME,BASE_DESC,BASE_TYPE,BASE_SON)
    VALUES("B", "ADMIN","賬號類型","AccountType","N");

    總結

    到此這篇關于oracle數據庫表實現自增主鍵的文章就介紹到這了,更多相關oracle數據庫表自增主鍵內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

    標簽: Oracle
    国产综合久久一区二区三区