Você pode passar explicitamente cada campo:
CALL logChanges(OLD.colA, OLD.colB, NEW.colA, NEW.colB);
Ou se
logChanges
deve ser suficientemente genérico para poder lidar com tais chamadas de tabelas diferentes, pode-se concatenar os valores dos campos em uma única string usando um delimitador adequado (por exemplo, o separador de unidade
):CALL logChanges(CONCAT_WS(CHAR(31), OLD.colA, old.colB),
CONCAT_WS(CHAR(31), NEW.colA, NEW.colB));
Ou se os tipos de dados devem ser preservados, pode-se inserir os registros em um temporário do qual
logChanges
lê.