Możesz wyraźnie przekazać każde pole:
CALL logChanges(OLD.colA, OLD.colB, NEW.colA, NEW.colB);
Lub jeśli logChanges
musi być na tyle ogólny, aby mógł obsłużyć takie wywołania z różnych tabel, można by połączyć wartości pól w jeden ciąg za pomocą odpowiedniego separatora (np. separator jednostek
):
CALL logChanges(CONCAT_WS(CHAR(31), OLD.colA, old.colB),
CONCAT_WS(CHAR(31), NEW.colA, NEW.colB));
Lub jeśli typy danych muszą być zachowane, można wstawić rekordy do tymczasowego, z którego logChanges
czyta.