Verfolgen des Verlaufs von Datenbankänderungen mit MySQL
Viele Datenbanksysteme erfordern die Möglichkeit, Änderungen an Datensätzen im Laufe der Zeit zu verfolgen. MySQL bietet eine unkomplizierte Technik, um dies zu erreichen. Stellen Sie sich eine Datentabelle namens „data“ vor, die Sie auf Änderungen überwachen möchten.
Erstellen Sie zunächst eine Verlaufstabelle für „data“ mit derselben Struktur, mit Ausnahme von drei zusätzlichen Spalten:
Diese Spalten speichern den Vorgang (Einfügen/Aktualisieren/Löschen) und die Sequenznummer , sowie das Datum und die Uhrzeit des Vorgangs.
Als nächstes erstellen Trigger, um diese Vorgänge zu erfassen und die Verlaufstabelle zu füllen:
Jetzt werden alle Datenänderungen in der Tabelle „data_history“ aufgezeichnet. Um die Änderungen für eine bestimmte Spalte über Aktualisierungen hinweg anzuzeigen, können Sie die Verlaufstabelle in den Primärschlüssel- und Sequenzspalten mit sich selbst verknüpfen:
CREATE VIEW data_history_changes AS SELECT t2.dt_datetime, t2.action, t1.row_id, IF(t1.a_column = t2.a_column, t1.a_column, t1.a_column || " to " || t2.a_column) AS a_column FROM data_history AS t1 INNER JOIN data_history AS t2 ON t1.row_id = t2.row_id WHERE (t1.revision = 1 AND t2.revision = 1) OR t2.revision = t1.revision + 1 ORDER BY t1.row_id ASC, t2.revision ASC
Dies sollte eine kompakte und historische Ansicht aller an der vorgenommenen Änderungen bieten Tabelle „Daten“.
Das obige ist der detaillierte Inhalt vonWie kann ich Datenbankänderungen in MySQL mithilfe von Triggern und Ansichten verfolgen und anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!