Последние два оператора if
используют оператор присваивания :=
вместо оператора равенства =
.В одной из ссылок old
отсутствует и двоеточие в начале, и вам не хватает пары точек с запятой в конце оператора.
Но вы не можете сравнить ноль с проверками равенства, есть выделенныеоператоры , которые вы должны использовать вместо этого.
Таким образом, они должны быть:
if :old.datumterugbetaald IS NULL and :new.datumterugbetaald IS NOT NULL then
:new.terugbetaald := 'Y';
end if;
if :old.datumterugbetaald IS NOT NULL and :new.datumterugbetaald IS NULL then
:new.terugbetaald := 'N';
end if;
Вам также необходимо рассмотреть, какой столбец должен быть установлен, если ни один if
не имеет значения true- если столбец, который вы проверяете, был и остается нулевым, или был и остается и не остается (в том числе, если он меняет значение).
То же самое верно и для ваших первых трех проверок;и ваши первый и третий чеки кажутся одинаковыми.