У меня есть таблица Ticketsforsale:
Ticketsforsale(ticket_id, starting_date, price)
Мне нужно создать функцию триггера, которая, в случае обновления по параметру «начальная_дата», будет заменять старую «начальную_дату» обновленной в дополнение кпонижение «цены» на 20%.
Функция триггера, с которой я до сих пор сталкивался, следующая:
create or replace function automatic_update()
RETURNS TRIGGER AS $$
begin
IF new.starting_date != ticketsforsale.starting_date
THEN old.starting_date = new.starting_date ,
ticketsforsale.price = ticketsforsale.price * (20/100) ;
END IF ;
RETURN NEW ;
END ;
$$
LANGUAGE plpgsql ;
CREATE TRIGGER automation
BEFORE INSERT OR UPDATE ON public.ticketsforsale
FOR EACH ROW EXECUTE PROCEDURE automatic_update()
Код функции триггера работает правильно, без ошибок.
Но когда я обновляю значение столбца «начальная_дата» и пытаюсь сохранить изменения, я получаю следующую ошибку:
Отсутствует запись предложения FROM в таблице 'ticketsforsale'ЛИНИЯ 1: ВЫБРАТЬ new.starting_date! = Ticketsforsale.starting_date * ЗАПРОС: ВЫБРАТЬ new.starting_date! = Ticketsforsale.starting_date КОНТЕКСТ: PL / pgsql функция automatic_update () строка 3 на IF
Я возилсяс функцией в значительной степени.Однако, похоже, я не понял это правильно, спасибо.