Příklad vytvoření spouštěče pomocí dynamického SQL pomocí PL/PgSQL naleznete v Audit Trigger ukázka pro PostgreSQL. Stejný přístup bude fungovat s jakýmkoli jiným DDL.
Viz funkce audit.audit_table
a použití format
a EXECUTE
tam.
To znamená, že potřeba vytvářet tabulky procedurálně může být (ale není to vždy) známkou pochybného návrhu schématu.
Jednoduchý příklad dynamického SQL vytvoření tabulky:
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;
Stejný přístup funguje pro vytváření triggerů atd.