1. 程式人生 > 其它 >Oracle設定主鍵自動增長

Oracle設定主鍵自動增長

技術標籤:PL/SQLoracle

首先建立一張表,名為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;