ORACLE數據庫實現主鍵自增


ORACLE數據庫是甲骨文公司的一款關系數據庫管理系統

實現主鍵自動增長需要四個步驟:

  1. 去看 創建表格
  2. 去看 創建自增序列
  3. 去看 創建觸發器
  4. 去看 插入測試

 

1.創建表格(必須有主鍵)

-- 創建學生表(student)主鍵為:s_id 
CREATE TABLE student(
s_id NUMBER(10) NOT NULL PRIMARY KEY ,-- 主鍵列 s_id
s_name VARCHAR2(50),         -- 學生姓名 s_name
s_age NUMBER(8)              -- 學生年齡 s_age
);

2.創建自增序列

-- 創建自增序列(seq_student) 
CREATE SEQUENCE seq_student
             INCREMENT BY 1 --每次增加1,可以寫非0的任何整數
             START WITH 1 -- 從1開始(起始值)
             MAXVALUE  999   -- 設置最大值:設置為 NOMAXVALUE 表示無最大值
             MINVALUE 1   -- 設置最小值
             NOCYCLE      -- 不循環一直增加
             CACHE 20; -- 設置20個緩存,不使用緩存則寫 NOCACHE

 到這一步就可以使用了,不過使用的時候必須按格式調用

格式:自增序列的名字.nextval (我這里的序列名為 seq_student )

insert into student values (seq_student.nextval,'李四',28); 

 

3.創建觸發器(插入數據時觸發)

create trigger tri_student_ins   --每個觸發器名不可一樣
       before insert on student for each row  when (new.s_id is null) --student:換為自己的表名;s_id 換為自己的主鍵名
    begin 
      select seq_student.nextval into:new.s_id from dual;  -- seq_student:換為上一步創建的自增序列名;s_id 換為主鍵名
    end;

 

4.插入數據測試

insert into student values (DEFAULT,'測試',28);

 


注意點:

1.創建表格時:必須有主鍵!

2.創建自增序列時:序列名不要太復雜,id自增根據功能靈活變通!

3.創建觸發器時:根據自己的表名,主鍵名,序列名更換需要更換的位置

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM