Oracle 實現表中id字段自增長


Oracle 實現表中id字段自增長

最近正在學習Oracle的時候發現Oracle表中的字段不能像mysql中那樣可以用auto increment修飾字段從而讓id這種主鍵字段實現自增長.

那Oracle中是怎么實現字段自增長呢?

1. 首先創建一個表

-- 1. 餐桌表
CREATE  or replace TABLE dinnerTable(
   id number PRIMARY KEY ,  -- 餐桌主鍵
   tableName VARCHAR(20),           -- 餐桌名
   tableStatus number DEFAULT 0,          -- 餐桌狀態:0,空閑; 1,預定
   orderDate DATE default sysdate
);

這個餐桌表中的id字段是我們的主鍵,我們希望在插入一條內容的時候,id字段能夠自動+1。

這里需要用到Oracle中的 序列和觸發器

2. 創建一個序列

CREATE or replace TRIGGER my_trigger_table(你的觸發器名稱) 
BEFORE
INSERT ON dinnerTable FOR EACH ROW 
begin
   select my_sequence_table.nextval into  :new.id from dual;
end ;

這里我們想要每次插入新條目時id+1,那么就要在INCREMENT BY 后面寫1.

3. 創建觸發器

CREATE or replace TRIGGER my_trigger_table(你的觸發器名稱) 
BEFORE
INSERT ON dinnerTable FOR EACH ROW 
begin
   select my_sequence_table.nextval into  :new.id from dual;
end ;

這時就已經完成了

這個觸發器的作用是用戶向dinnerTable表中插入之前,會先調用之前創建的序列,序列.nextval會賦給新插入的條目的id,從而實現id加1.


免責聲明!

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



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