Wie Sie feststellen, ob ein Feld/Spalte aus, die betroffen ist, indem Sie eine UPDATE-Anweisung

Hallo an alle und danke für Eure Antworten und Kommentare.

Ich habe eine Tabelle mit mehreren Feldern, unter denen version, last_modified und modified_by

Ich bin writting einen Auslöser:

  • erhöhen version um 1 nach jedem/jedem update,
  • set last_modified zu den aktuellen timestamp,
  • legen Sie die id des Benutzers, der zuletzt änderungen in modified_by, und
  • verhindern, dass die Programmierer von ignorieren/vergessen zu setzen modified_by = userid in der UPDATE-Anweisung, die durch das auslösen eines Signals (in diesem Fall).

Wie kann ich das erreichen?

Habe ich versucht, die überprüfen, ob isnull(NEW.modified_by), aber dann erkannte, dass NEW.modified_by nimmt den gleichen Wert wie OLD.modified_by wenn es nicht betroffen. Auch, überprüfen, ob NEW.modified_by gleich OLD.modified_by nicht ganz, denn Sie könnte ein Benutzer modifiyng ein Datensatz geändert durch sich selbst.

Gibt es eine Möglichkeit zu bestimmen, welche Felder wo betroffen von der UPDATE-Anweisung? Oder wenn ein bestimmtes Feld (modified_by) war betroffen?

InformationsquelleAutor ahpoblete | 2011-05-06
Schreibe einen Kommentar