Я пытаюсь иметь динамическую переменную, с которой я могу указать разные столбцы (в зависимости от некоторых операторов if). Разъяснения в коде, я пытаюсь заменить это:Динамические столбцы в выражении SQL
IF (TG_TABLE_NAME='this') THEN INSERT INTO table1 (name_id) VALUES id.NEW END IF;
IF (TG_TABLE_NAME='that') THEN INSERT INTO table1 (lastname_id) VALUES id.NEW END IF;
IF (TG_TABLE_NAME='another') THEN INSERT INTO table1 (age_id) VALUES id.NEW END IF;
С этим:
DECLARE
varName COLUMN;
BEGIN
IF (TG_TABLE_NAME='this') THEN varName = 'name_id';
ELSE IF (TG_TABLE_NAME='that') THEN varName = 'lastname_id';
ELSE (TG_TABLE_NAME='another') THEN varName = 'age_id';
END IF;
INSERT INTO table1 (varName) VALUES id.NEW;
END;
Инструкция INSERT строка это просто пример, на самом деле это что-то больше. Я начинаю на pgSQL. Я видел несколько примеров, но я только больше смущен. Если вы можете предоставить ответ, который также более безопасен для SQL-инъекций, это было бы потрясающе.
Что такое 'pgSQL'? Существует * PostgreSQL * (или * Postgres * для краткости), * psql * (интерфейс командной строки) и * plpgsql * (процедурный серверный язык) ... Очевидно, что вы работаете над функцией триггера. Когда вы спрашиваете о ** функции plpgsql **, всегда предоставляйте * полную * функцию, включая верхний и нижний колонтитулы, которые являются неотъемлемыми частями. –