Postgresql Trigger für Spalte

  • Hallo,


    Gibt es eine Möglichkeit einen Trigger in einer Postgresql Tabelle erst auszulösen wenn es in einer bestimmten Spalte ein Update gegeben hat?
    im Moment geht es nur wenn irgendwo auf einer Zeile ein Update durchgeführt wird.


    noch besser wäre es wenn in dieser Spalte auf einen gewissen Wert Upgedatet wird.


    Code
    1. CREATE TRIGGER date_lastchange
    2. BEFORE UPDATE
    3. ON public.arbeitsauftrag
    4. FOR EACH ROW
    5. EXECUTE PROCEDURE public.date_lastchange();


    mfg Peter

  • Für PostgreSQL kann ich nicht direkt sprechen, aber ich vermute, dass es das kann.
    Die Doku sollte das aber beantworten können.


    Als kleine Hilfe evtl.: In T-SQL erreiche ich das mit einer simplen IF Abfrage innerhalb des Trigger:



    EDIT: Gerade mal hier gefunden: https://stackoverflow.com/ques…-the-columns-have-changed
    Du kannst also NEW und OLD vergleichen:

    Code
    1. IF NEW.column_name <> OLD.column_name THEN
    2. ...
    3. END IF