CREATE OR REPLACE TRIGGER CRC_028_INOUT_SUMMARY_T(觸發器名)
BEFORE INSERT ON CRC_028_INOUT_SUMMARY(表名稱)
FOR EACH ROW
DECLARE
L_SUMMARY_ID NUMBER := 0;
BEGIN
-- CRC_028_INOUT_SUMMARY_S 是序列名
SELECT CRC_028_INOUT_SUMMARY_S.NEXTVAL INTO L_SUMMARY_ID FROM DUAL;
:NEW.SUMMARY_ID := L_SUMMARY_ID;
END;
好好看看,可以參考我的博客:mit,可能導致log file sync等待,nocache sequence在RAC環境下
會對基於sequence生成的列創建的索引造成實例間大量索引塊爭用。基於以上問題,避免創建nocache sequence。
創建序列的語法,序列是和表壹樣的對象要指定它的用戶
CREATE SEQUENCE sequence
[INCREMENT BY n] -- 自增的公差,默認為1
[START WITH n] -- 起始值
[{MAXVALUE n | NOMAXVALUE}] -- 最大值
[{MINVALUE n | NOMINVALUE}] -- 最小值
[{CYCLE | NOCYCLE}] -- 循環
[{CACHE n | NOCACHE}]; -- 緩存
從序列取值: CURRVAL 取當前值, NEXTVAL取下壹個值
更改序列的定義:
ALTER SEQUENCE dept_deptid_seq
INCREMENT BY 20
MAXVALUE 999999
NOCACHE NOCYCLE;