Я пытаюсь создать простой триггер, который вставляет строку в таблицу друзей с инвертированными значениями, поэтому, когда (1,2) вставляется (2,1), также вставляется, но я продолжаю получать эту ошибку, и я Я не уверен, что происходит не так.
ОШИБКА: превышен предел глубины стека. СОВЕТ: Увеличьте параметр конфигурации "max_stack_depth" (в настоящее время 2048 КБ) после того, как убедитесь, что ограничение глубины стека платформы соответствует. КОНТЕКСТ: SQL оператор «вставить в значения друзей (ID1, ID2) (NEW.ID2, NEW.ID1)» PL / pg SQL функция friend_add () строка 2 в SQL оператор
CREATE OR REPLACE FUNCTION public.friend_add()
RETURNS trigger
LANGUAGE 'plpgsql'
VOLATILE
COST 100
AS $BODY$begin
insert into friend(ID1,ID2) values (NEW.ID2, NEW.ID1);
return new;
end
end;$BODY$;
CREATE TRIGGER friend_add
AFTER INSERT
ON public.friend
FOR EACH ROW
EXECUTE PROCEDURE public.friend_add();
Вот мои определения функций и триггеров.