sql >> Database >  >> RDS >> PostgreSQL

Pas een enkele triggerprocedure toe op veel verschillende tabellen

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.



  1. RESTful API of Socket.IO

  2. Hoe JSON-gegevens op te slaan in MySQL

  3. Strongloop:filter gegevens met [en] en [of] voorwaarden samen

  4. Follow-up #1 op leidende wildcard-zoekopdrachten