mysql Trigger para el registro, encontrar columnas modificadas

Estoy escribiendo un desencadenante para realizar un seguimiento de todos los cambios que ocurren en una tabla. Desafortunadamente, la tabla tiene más de 150 columnas y quería evitar escribir cada columna en el código (por ejemplo, new.col1, new.col2 ....) y, por lo tanto, escribí la siguiente consulta en "después del activador de actualización"

INSERT INTO logs SELECT *, NOW() FROM abc WHERE abc.id = NEW.Id;

Esta idea está causando varios problemas debido a la duplicación de datos que no se modifica en la consulta de actualización.

En pocas palabras, quiero saber de forma dinámica qué columnas formaban parte de la consulta de actualización y, si eso no es posible, hay una manera de iterar a través de todas las columnas de la fila "nueva" para poder comparar dinámicamente las antiguas. @ ColName == new . @ colName?

Ya he vistoOracle PL / SQL: Loop Over Trigger Columns Dinámicamente, Cómo determinar si algo cambió en el activador de actualización en t-sql yActivador de ACTUALIZACIÓN de MySQL: INSERTAR los valores de las columnas que realmente cambiaron.

El último enlace es el cierre de lo que necesito con solo una diferencia, no quiero codificar los nombres de las columnas en la siguiente declaración porque tengo más de 100 columnas en todas las tablas. ¡Voy a escribir un activador similar para!

IF NEW.column1 <> OLD.column1 THEN INSERT INTO... END IF; IF NEW.column2 <> OLD.column2 THEN INSERT INTO... END IF

Respuestas a la pregunta(2)

Su respuesta a la pregunta