Gibt es eine Möglichkeit, den aktualisierten Spaltennamen zu erhalten, um ihn in einem Trigger zu verwenden?Aktuellen Spaltennamen zur Verwendung in einem Trigger abrufen
Grundsätzlich versuche ich, eine Audit-Trail zu haben, wenn ein Benutzer Einsatz oder eine Tabelle aktualisiert (in diesem Fall mit einer Contact-Tabelle zu tun hat)
CREATE TRIGGER `after_update_contact`
AFTER UPDATE ON `contact` FOR EACH ROW
BEGIN
INSERT INTO user_audit (id_user, even_date, table_name, record_id, field_name, old_value, new_value)
VALUES (NEW.updatedby, NEW.lastUpdate, 'contact', NEW.id_contact, [...])
END
Wie kann ich den Namen der bekommen Spalte, die aktualisiert wurde und von dieser erhalten die OLD
und NEW
Werte dieser Spalte. Wenn mehrere Spalten in einer Zeile oder sogar in mehreren Zeilen aktualisiert wurden, ist es möglich, für jedes Update ein Audit durchzuführen?
Wenn ich nicht falsch verstanden, was Sie bedeuten, dass ich bin mir nicht ganz sicher, wie das hilft mir, ich weiß nicht im Voraus, was Spalte so kann ich aktualisiert wird nicht hardcode es im Trigger. Ich muss herausfinden, welche Spalte aktualisiert wurde und seinen Namen in die Audit-Tabelle einfügen. – Serge
Sie müssen also alle Spalten überprüfen. Wie ich bereits sagte, Trigger sind in MySQL ziemlich begrenzt. –
Ich hatte Angst davor ... Also, wenn meine Tabelle 5 Spalten hat, muss ich if-Anweisungen sowie ein INSERT für jeden verwenden, um jede aktualisierte Spalte zu überprüfen? – Serge