Skip to Main Content

 

Auswahl  

Trigger Beispiele in Postgres 

Postgres
Postgres
PG 12
27.11.19 (MP)
05.07.23(MP)
Trigger, Postgres, Row Trigger, Statement Trigger

Passende Schulungen zum Thema

Bei Postgres wird im Gegensatz zu Oracle die Aufgabe in zwei Teile zerlegt:
1. Eine Funktion, die das Doing übernimmt
2. Einen Trigger, der bei einem Event die Funktion aufruft.
 

CREATE TRIGGER mytrig [BEFORE|AFTER|INSTEAD OF] event_name
ON mytable;
Beispiel: Insert, Update, Delete, Truncate Before Row Trigger
CREATE TRIGGER mytrig BEFORE
INSERT OR DELETE OR UPDATE OR TRUNCATE 
ON mytable
FOR EACH ROW
EXECUTE PROCEDURE myfunc();
Beispiel: Insert, Update, Delete, Truncate Instead of Row Trigger (zündet nur bei Änderungen an einer View)
CREATE TRIGGER mytrig INSTEAD OF
INSERT OR DELETE OR UPDATE OR TRUNCATE
ON myview
FOR EACH ROW
EXECUTE PROCEDURE mytrgfunc();
Beispiel für die Funktion, die der Trigger dann aufruft:
CREATE OR REPLACE FUNCTION mytrgfunc()
RETURNS TRIGGER AS $$
   BEGIN
      INSERT INTO AUDIT(new_col1, old_col2)
      VALUES (new.ID, old.ID);
      RETURN NEW;
   END;
$$ LANGUAGE plpgsql;


Welche Trigger gibt es in der DB?

SELECT * FROM pg_trigger;


oder für eine spezielle Tabelle:

SELECT tgname FROM pg_trigger, pg_class
WHERE tgrelid=pg_class.oid
AND relname='mytab';
Trigger bei Bedarf wieder löschen:
DROP TRIGGER trigger_name;


 

Weitere Interessante Kurs-Tipps zum Thema

Partitionierte Tabellen Beispiele in Postgres
Partitionierte Tabellen von Postgres (ab Version 10)
Automatische Triggerwiedereinschaltung
Einsatz von After Servererror-Triggern bei dem Troubleshooting von Datenbankfehlern
Compound Trigger zur Vermeidung von Mutating Tables in 11g

Besuchen Sie uns doch bei einer unsere über 50 Oracle Schulungen in München - Unterhaching, oder verfolgen Sie die Training per Videostreaming bequem vom Home Office oder Büro aus.