Ошибка синтаксиса при создании триггера на копирование данных со второй в третью таблицу

Существует БД данной структуры: введите сюда описание изображения

Необходимо написать триггерную функцию, которая при создании нового контракта(contract) добавляет запись покупателя(buyer) в таблицу владельца(owner).

Такой код триггера pgAdmin не принимает, ссылаясь на ошибку синтаксиса в районе INSERT:

 CREATE OR REPLACE FUNCTION after_contract() RETURNS TRIGGER AS $BODY$
BEGIN
INSERT INTO public.owner(owner_id,owner_name, passport_num, owner_phone_num)
        VALUES((SELECT nextval(owner.owner_id)), 
               (SELECT(buyer.buyer_name FROM public.buyer WHERE buyer.buyer_id = new.contract.buyer_id)), 
               (SELECT(buyer.buyer_passport_num FROM public.buyer WHERE buyer.buyer_id = new.contract.buyer_id)), 
               (SELECT(buyer.buyer_phone_num FROM public.buyer WHERE buyer.buyer_id = new.contract.buyer_id)));
           RETURN new;
END;
$BODY$
language plpgsql;

Подскажите, пожалуйста, в какую сторону копать?


Ответы (0 шт):