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.