C'è un modo per ottenere effettivamente il nome della colonna che è stato aggiornato per poterlo utilizzare in un trigger?Ottieni il nome della colonna aggiornato corrente da utilizzare in un trigger
Fondamentalmente sto cercando di avere una traccia di verifica ogni volta che un utente inserisce o aggiorna una tabella (in questo caso si ha a che fare con un tavolo di contatto)
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
Come posso ottenere il nome del colonna che è stata aggiornata e da quella ottengono i valori OLD
e NEW
di quella colonna. Se più colonne sono state aggiornate in una riga o anche in più righe, è possibile avere una verifica per ogni aggiornamento?
A meno che non ho capito male quello che volevi dire io non sono del tutto sicuro di come questo mi aiuta, non so in anticipo che cosa colonna che viene aggiornato in modo non posso hardcode nel trigger. Devo scoprire quale colonna è stata aggiornata e inserire il suo nome nella tabella di controllo. – Serge
Quindi devi controllare tutte le colonne. Come ti ho detto, i trigger sono piuttosto limitati in MySQL. –
Avevo paura di questo ... Quindi se la mia tabella ha 5 colonne dovrò usare se le istruzioni e un INSERT per ciascuna per controllare ogni colonna aggiornata? – Serge