1. 程式人生 > >oracle中實現自增id

oracle中實現自增id

acl pac primary 但是 數據庫 AR not select 簡單

在一些數據庫(例如mysql)中,實現自增id只要在建表的時候指定一下即可,

但是在oracle中要借助sequence來實現自增id,

要用上自增id,有幾種方式:

1.直接在insert語句中使用sequence的nextval。

2.在建表時為字段設置default,這種方式我還沒測試。

3.使用觸發器,關於觸發器的方式,從別人那得到了一個示例,暫且先貼到這裏作為備忘。我覺得如果default方式如果可用的話,會比使用觸發器的方式簡單。

以下是觸發器方式相關的代碼:

CREATE TABLE STUDENT
(
ID INT NOT NULL,
NAME VARCHAR2(4000) NOT NULL,

PRIMARY KEY(ID)
)
TABLESPACE MYDB;

--創建自增ID,名稱為:表名_字段名_SEQ
CREATE SEQUENCE sTUDENT_ID_SEQ MINVALUE 1 NOMAXVALUE INCREMENT BY 1 START WITH 1 NOCACHE;


-- 為Insert操作創建觸發器,無需在SQL語句裏寫NEXTVAL,名稱為表名_INS_TRG
CREATE OR REPLACE TRIGGER sTUDENT_INS_TRG BEFORE INSERT ON STUDENT FOR EACH ROW WHEN(NEW.ID IS NULL)
BEGIN
SELECT STUDENT_ID_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
END;

未完待續

oracle中實現自增id