mysql Trigger para log, encontrar colunas alteradas

Estou escrevendo um gatilho para acompanhar todas as alterações que acontecem em uma tabela. Infelizmente a tabela tem mais de 150 colunas e eu queria evitar escrever cada coluna no código (Ex. New.col1, new.col2 ....) e assim escrevi uma consulta a seguir em "after update trigger"

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

Essa ideia está causando vários problemas devido à duplicação de dados que não é alterada na consulta de atualização.

Resumidamente, quero descobrir dinamicamente quais colunas fazem parte da consulta de atualização e, se isso não for possível, há uma maneira de percorrer todas as colunas da "nova" linha, para que eu possa comparar dinamicamente o antigo. @ ColName == new @ colName?

eu já viOracle PL / SQL: Loop sobre colunas de disparo dinamicamente, Como determinar se algo mudou no gatilho de atualização no t-sql eMySQL UPDATE trigger: INSERTando os valores das colunas que realmente mudaram.

O último link é o que fecha para o que eu preciso com apenas uma diferença, eu não quero codificar os nomes das colunas no seguinte statment porque eu tenho mais de 100 + colunas em todas as tabelas que eu vou escrever gatilho semelhante para !!

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

questionAnswers(2)

yourAnswerToTheQuestion