U kunt een voorbeeld vinden van het maken van een trigger met dynamische SQL met behulp van PL/PgSQL in de Audit Trigger voorbeeld voor PostgreSQL. Dezelfde aanpak werkt met elke andere DDL.
Zie de functie audit.audit_table
en gebruik van format
en EXECUTE
daar.
Dat gezegd hebbende, het procedureel moeten maken van tabellen kan (maar is niet altijd) een teken van twijfelachtig schemaontwerp.
Eenvoudig voorbeeld van dynamische SQL die een tabel maakt:
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;
Dezelfde aanpak werkt voor het maken van triggers, enz.