FÜR JEDES AUSSAGE-Beispiel

8

Ich habe mir die Dokumentation von Postgresql-Triggern angeschaut , aber es scheint so Ich zeige nur Beispiele für Trigger auf Zeilenebene, aber ich kann kein Beispiel für einen Trigger auf Anweisungsebene finden.

Insbesondere ist es nicht ganz klar, wie man in den update / inserted Zeilen in einer einzigen Anweisung iteriert, da NEW für einen einzelnen Datensatz ist.

    
diffeomorphism 12.06.2014, 20:42
quelle

1 Antwort

11

OLD und NEW sind in einem Trigger auf Anweisungsebene nicht definiert. Pro Dokumentation:

  

NEW

     

Datentyp RECORD ; Variable, die die neue Datenbankzeile für INSERT / UPDATE -Operationen in Triggern auf Zeilenebene enthält. Diese Variable ist   nicht zugewiesen in Statement-Level-Trigger und für DELETE -Operationen.

     

OLD

     

Datentyp RECORD; Variable, die die alte Datenbankzeile für Operationen UPDATE / DELETE in Triggern auf Zeilenebene enthält. Diese Variable ist   nicht zugewiesen in Statement-Level-Trigger und für INSERT -Operationen.

Fett Hervorhebung meins.

Beispiel für einen Trigger auf Anweisungsebene

Das sind nicht sehr häufig. Ein nützliches Beispiel ist das Senden von Benachrichtigungen nach bestimmten DML-Befehlen.
Hier ist eine vereinfachte Version von dem, was ich benutze:

%Vor%     
Erwin Brandstetter 12.06.2014, 23:43
quelle

Tags und Links