首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 實現自增主鍵:Sequence + 觸發器完整範例

     編輯:Oracle 資料庫基礎

創建 Sequence

CREATE SEQUENCE emp_sequence
  INCREMENT BY 1   -- 每次遞增 1
  MINVALUE 1       -- 最小值 1
  NOMAXVALUE       -- 無最大值
  START WITH 1     -- 從 1 開始
  CACHE 10         -- 緩存 10 個值提升性能
  ORDER;           -- RAC 環境保證全局有序
  • CURRVAL:返回當前值(需先在 Session 中調用過 NEXTVAL)。
  • NEXTVAL:遞增並返回新值。

創建觸發器自動賦值

CREATE OR REPLACE TRIGGER sysrole_id
BEFORE INSERT ON sysrole  -- 表名
FOR EACH ROW
BEGIN
  SELECT emp_sequence.NEXTVAL INTO :NEW.roleid FROM DUAL;
END;
/
-- 測試插入(不指定 roleid)
INSERT INTO sysrole(roleName, roleDesc) VALUES ('法律管理員', '管理法律法規信息');
COMMIT;

驗證結果

查詢 sysrole 表,roleid 自動生成 1、2… 截圖確認效果。

此模式為 Oracle 11g 及之前版本標準做法;12c+ 可直接使用 GENERATED AS IDENTITY 語法簡化。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved