Можете да намерите пример за създаване на тригер с динамичен SQL с помощта на PL/PgSQL в Тригера за проверка пример за PostgreSQL. Същият подход ще работи с всеки друг DDL.
Вижте функцията audit.audit_table
и използване на format
и EXECUTE
там.
Въпреки това необходимостта от процедурно създаване на таблици може да бъде (но не винаги) знак за съмнителен дизайн на схема.
Прост пример за динамично SQL създаване на таблица:
CREATE OR REPLACE FUNCTION demo_dynamic_table(tablename text) RETURNS void AS $$
BEGIN
EXECUTE format('CREATE TABLE %I (id serial primary key);', tablename);
END;
$$ LANGUAGE plpgsql;
Същият подход работи за създаване на тригер и т.н.