Oracle設定主鍵自動增長
阿新 • • 發佈:2020-12-15
首先建立一張表,名為TEST_USER
CREATE TABLE TEST_USER
(
ID NUMBER(11) NOT NULL PRIMARY KEY,
USER_ID VARCHAR2(11),
USER_NAME VARCHAR2(11),
CREATED_BY VARCHAR2(11),
GMT_CREATE DATE,
MODIFIED_BY VARCHAR2(11),
GMT_MODIFIED DATE,
IS_DELETED NUMBER(1)
);
給TEST_USER表添加註釋說明
-- 新增表註釋 COMMENT ON TABLE TEST_USER IS '測試使用者表'; -- 新增欄位註釋 COMMENT ON COLUMN TEST_USER.ID IS '主鍵'; COMMENT ON COLUMN TEST_USER.USER_ID IS '使用者ID'; COMMENT ON COLUMN TEST_USER.USER_NAME IS '使用者名稱稱'; COMMENT ON COLUMN TEST_USER.CREATED_BY IS '建立人'; COMMENT ON COLUMN TEST_USER.GMT_CREATE IS '建立時間'; COMMENT ON COLUMN TEST_USER.MODIFIED_BY IS '修改人'; COMMENT ON COLUMN TEST_USER.GMT_MODIFIED IS '修改時間'; COMMENT ON COLUMN TEST_USER.IS_DELETED IS '1 表示刪除,0 表示未刪除';
建立一個序列號
CREATE SEQUENCE TEST_USER_ID -- 序列號名稱
MINVALUE 1 -- 最小值
MAXVALUE 999999999 -- 最大值
INCREMENT BY 1 -- 自增步長為1
START WITH 1; -- 初始值
為TEST_USER表建立一個主鍵ID欄位自動增長的觸發器
CREATE OR REPLACE TRIGGER TRIGGER_TEST_USER_ID BEFORE INSERT -- 新增資料前 ON TEST_USER -- 觸發器作用的物件 FOR EACH ROW -- 指定建立的是行級觸發器 BEGIN SELECT TEST_USER_ID.nextval -- 使用名為TEST_USER_ID的序列號 INTO :NEW.ID FROM dual; END;