Я пытаюсь создать функцию динамического триггера, которая будет вставлять новые данные в определенный столбец записи 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
?