2015-02-06 3 views
0

Всякий раз, когда поле sync обновляется без флага YES Мне нужно установить это поле в NULL.Trigger on Update Firebird

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

Но я продолжаю получать ошибки:

Dynamic SQL Error SQL error code = -104 Unexpected end of command - line 6, column 26

Я считаю, что линия 6 является then new.sync = NULL? Я думал, что проблема может быть в использовании ;, но это не так, потому что, если я удалю ее, она даст ту же ошибку, но в строке .

ответ

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;