Frage zu Trigger für "letzte Änderung"

Hallo,
ich steige gerade von einer MySQL Datenbank zu PostgreSQL um und stoße dort doch ab und an auf kleine Schwierigkeiten. Bisher konnte ich alle meistern, nur bei einer Sache bin ich mir unsicher. Ich habe in einer Tabelle eine Spalte “letzte_aend”, die die letzte Änderung in der Zeile festhalten soll. In PostgreSQL gibt es ja leider keinen Datentyp, der automatisch die letzte Änderung reinschreibt, daher muss ich das wohl über einen Trigger lösen.

Ich habe jetzt mal den Trigger soweit geschrieben und er funktioniert, ich möchte nur sicher gehen, dass ich es soweit richtig gemacht habe und nichts verbessern könnte. Erstellt habe ich den Trigger mt pgAdmin III und geschrieben ist er in plpgsql. Den Besitzer der Datenbanken habe ich momentan auf postgres, werde ich aber vor der Produktivschaltung ändern.

Triggerfunktion:

CREATE OR REPLACE FUNCTION "TF_unternehmen_letzte-aend"()
  RETURNS "trigger" AS
$BODY$  DECLARE

  BEGIN
    -- set letzte_aend to actual time
    NEW.letzte_aend = now();
    
    RETURN NEW;
  END;$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION "TF_unternehmen_letzte-aend"() OWNER TO postgres;

Trigger:

CREATE TRIGGER "TR_unternehmen_letzte-aend"
  BEFORE INSERT OR UPDATE
  ON unternehmen
  FOR EACH ROW
  EXECUTE PROCEDURE "TF_unternehmen_letzte-aend"();

Ist somit alles richtig erfüllt?

Willkommen.

Ist somit alles richtig erfüllt?

Ja, sieht okay aus.

Andreas

Danke für beides :slight_smile: