sql >> Databáze >  >> RDS >> PostgreSQL

Použijte jednu spouštěcí proceduru na mnoho různých tabulek

Příklad vytvoření spouštěče pomocí dynamického SQL pomocí PL/PgSQL naleznete v Audit Trigger ukázka pro PostgreSQL. Stejný přístup bude fungovat s jakýmkoli jiným DDL.

Viz funkce audit.audit_table a použití format a EXECUTE tam.

To znamená, že potřeba vytvářet tabulky procedurálně může být (ale není to vždy) známkou pochybného návrhu schématu.

Jednoduchý příklad dynamického SQL vytvoření tabulky:

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;

Stejný přístup funguje pro vytváření triggerů atd.



  1. Jak najít konkrétní řádek ve výsledku dotazu MySQL?

  2. Oracle SQL:Rozumíte chování SYS_GUID(), když je přítomen v inline pohledu?

  3. Jak vybrat nejedinečné řádky

  4. Jak používat funkci CASE v ORDER BY?