多个触发器不适用于firebird

时间:2013-05-14 19:58:51

标签: database events triggers firebird

create trigger tr_buFile_fileid for BUFiles before insert as 
begin
IF (NEW.FileID IS NULL) THEN NEW.FileID = GEN_ID(FileID_generator, 1);
end
create trigger tr_buFile_insert for BUFiles after insert as 
begin 
update miscitems set TotalSize = TotalSize + new.BuFileSize;
end

create trigger tr_buFile_update for BUFiles after update as 
begin 
if (new.DeletionTime < '9223372036854775807' and new.DeletionTime != old.DeletionTime) then
update miscitems set TotalSize = TotalSize - old.BuFileSize;
end

我在firebird数据库上创建了三个触发器。我的应用程序使用odbc连接来操作数据库。问题是如果在BuFiles表上插入,则第二个触发器(tr_buFile_insert)不起作用。但是,如果我在SQL Manager for InterBase / Firebird中测试它们,则此触发器有效。

感谢任何帮助。

谢谢, 视屏

1 个答案:

答案 0 :(得分:1)

您的触发器似乎没问题。 我担心你从应用程序连接到另一个数据库。请检查一下 。 另请检查触发状态是“ACTIVE”