触发更新Firebird

时间:2015-02-06 09:32:38

标签: sql triggers firebird

每当更新字段sync而标记为YES时,我需要将该字段设置为NULL

CREATE TRIGGER my_trigger FOR customers
AFTER UPDATE
as
BEGIN
if(new.sync <> 'YES')
  then new.sync = NULL;
end

但我一直收到错误:

  

动态SQL错误SQL错误代码= -104意外的命令结束 -   第6行,第26栏

我相信第6行then new.sync = NULL?我认为问题可能是使用;,但事实并非如此,因为如果我删除它,那么它会在第7行中给出相同的错误。

1 个答案:

答案 0 :(得分:3)

<强>解决。

有些代码丢失了但除此之外还有逻辑。我需要使用BEFORE而不是AFTER

SET TERM !; 
CREATE TRIGGER my_trigger FOR customers 
BEFORE UPDATE 
POSITION 0 
AS BEGIN 
    IF(new.sync <> 'YES') THEN BEGIN 
        new.sync = NULL; 
    END
END;