2009-04-16 34 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 
/