Технически нет такой вещи, как не предоставлять значение в обновлении, потому что, когда значение не предоставлено, это точно так же, как предоставление текущего / существующего значения.
NEW.UPDATE_DATE <=> OLD.UPDATE_DATE
оценивается как истинное в обоих этих условиях (без предоставления значения по сравнению с предоставлением существующего значения). Они неразличимы, в триггере.
Встроенная функциональность MySQL для меток времени реализует то, что вы ищете, без триггера, если вы объявите такой столбец в определении таблицы.
UPDATE_DATE TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html
Если значение столбца не указано в запросе на обновление, но по крайней мере еще один столбец изменен обновлением, столбец отметки времени будет установлен на NOW()
.