PL / PgSQLを使用して動的SQLでトリガーを作成する例は、 AuditTrigger> 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;
同じアプローチがトリガーの作成などにも機能します。