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 語法簡化。