PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zastosuj procedurę pojedynczego wyzwalania do wielu różnych stołów

Przykład tworzenia wyzwalacza z dynamicznym SQL przy użyciu PL/PgSQL można znaleźć w Wyzwalaczu audytu przykład dla PostgreSQL. To samo podejście będzie działać z każdym innym DDL.

Zobacz funkcję audit.audit_table i użycie format i EXECUTE tam.

To powiedziawszy, konieczność proceduralnego tworzenia tabel może być (ale nie zawsze) oznaką wątpliwego projektu schematu.

Prosty przykład dynamicznego SQL tworzenia tabeli:

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;

To samo podejście działa w przypadku tworzenia wyzwalaczy itp.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyjątek Postgres :zapytanie nie zwróciło żadnych wyników.

  2. Jak formatować liczby jako walutę w PostgreSQL

  3. Wstaw obiekt PostGIS (np. ST_GeomFromText) ze zmiennych wiersza w skrypcie plpgsql

  4. Dynamicznie generuj kolumny dla tabeli krzyżowej w PostgreSQL

  5. Jak poprawnie utworzyć słownik tezaurusa dla mojej niestandardowej konfiguracji wyszukiwania tekstu?