Zakładając, że używasz wystarczająco nowej wersji mySQL, użyłbym wyzwalaczy , osobiście.
Zakładając, że działają one mniej więcej tak, jak te, które znam z innych produktów (np. Oracle), twój problem staje się prostszy, w tym sensie, że umieszczasz w wierszu wyzwalacze „aktualizacji” i używasz go do aktualizacji tabeli audytu dla każdego pola jesteś zainteresowany.
Możliwe zastrzeżenie:jeśli Twoja aplikacja loguje się do bazy danych jako tylko jeden użytkownik (powszechne podejście, jeśli używasz na przykład puli połączeń), może być trudne rejestrowanie rzeczywistej tożsamości użytkownika.