Bạn có thể tìm thấy ví dụ về cách tạo trình kích hoạt với SQL động bằng PL / PgSQL trong Trình kích hoạt kiểm tra mẫu cho PostgreSQL. Cách tiếp cận tương tự sẽ hoạt động với bất kỳ DDL nào khác.
Xem hàm audit.audit_table
và sử dụng định dạng format
và EXECUTE
ở đó.
Điều đó nói rằng, việc cần tạo các bảng theo thủ tục có thể (nhưng không phải lúc nào cũng vậy) là một dấu hiệu của thiết kế lược đồ có vấn đề.
Ví dụ đơn giản về SQL động tạo bảng:
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;
Cách tiếp cận tương tự cũng hoạt động để tạo trình kích hoạt, v.v.