2009-04-16 57 views
0

我已經手動創建了一個觸發器(通過將SQL從另一個oracle數據庫粘貼到管理控制檯中),它自動遞增表的主鍵,並且在對象瀏覽器中查看觸發器時觸發器被列爲無效。爲什麼Oracle數據庫中的數據庫觸發器無效?

爲什麼會這樣?

這裏是重新創建觸發器的SQL:

CREATE OR REPLACE TRIGGER "BI_AGENTEVENTDATA" 
    before insert on "AGENTEVENTDATA"    
    for each row 
begin 
    select "AGENTEVENTDATA_SEQ".nextval into :NEW.ID from dual; 
end; ; 
/
ALTER TRIGGER "BI_AGENTEVENTDATA" ENABLE 
/

回答

2

你確定的順序存在,並且可以通過觸發器使用嗎?

試試這個:

select sequence_name from user_sequences; 
+0

序列失蹤我忘了遷移過來... DOH! – 2009-04-16 13:24:43

0

嘗試觸發沒有「換句話說:

CREATE OR REPLACE TRIGGER "BI_AGENTEVENTDATA" 
    before insert on "AGENTEVENTDATA"    
    for each row 
begin 
    select AGENTEVENTDATA_SEQ.nextval into :NEW.ID from dual; 
end; ; 
/
ALTER TRIGGER "BI_AGENTEVENTDATA" ENABLE 
/