Я пытаюсь написать функцию для триггера, которая проверяет, больше ли дата в новой записи в отношении, чем запись в другом отношении. Если это так, я хочу обновить значение даты в моем новом отношении до значения даты в моем другом отношении:
create or replace function curDate()
returns trigger as $$
Begin
if (new.date >= (select date from other where new.name = other.name )) then
set new.date = (select date from playlist where new.name = other.name );
end if;
end; $$ language plpgsql;
Я получаю синтаксическую ошибку: set new.date = (select date from playlist where new.name = other.name )
Тем не менее, это прекрасно работает:
create or replace function curDate()
returns trigger as $$
declare dateVar date;
Begin
dateVar := (select date from other where new.name = other.name);
if (new.datum >= dateVar) then
new.datum = dateVar;
end if;
end; $$ language plpgsql;
Почему это?