Возврат в новую запись в триггере Postgres внутри инструкции EXECUTE - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь создать функцию динамического триггера, которая будет вставлять новые данные в определенный столбец записи NEW.

CREATE OR REPLACE FUNCTION insert_object_tg () RETURNS TRIGGER AS
$$
BEGIN
  EXECUTE format(
    'INSERT INTO object (name, schema) VALUES (TG_TABLE_NAME, TG_TABLE_SCHEMA) RETURNING object_id INTO NEW.%s;',
    TG_ARGV[0]
  );

  RETURN NEW;
END
$$
LANGUAGE 'plpgsql' SECURITY DEFINER;

Строка, указанная в аргументе, является именем столбца.NEW, который должен получить значение, возвращаемое из вставки.

Однако это не работает:

ERROR: syntax error at or near "INTO"

Это ограничение EXECUTE?

Как получить динамический доступ к столбцу в записи NEW?

...