Существует ли способ на самом деле получить имя столбца, которое было обновлено для использования его в триггере?
В основном я пытаюсь иметь журнал аудита каждый раз, когда пользователь вставляет или обновляет таблицу (в этом случае, это имеет отношение к таблице Contact),
CREATE TRIGGER `after_update_contact`
AFTER UPDATE ON `contact` FOR EACH ROW
BEGIN
INSERT INTO user_audit (id_user, even_date, table_name, record_id, field_name, old_value, new_value)
VALUES (NEW.updatedby, NEW.lastUpdate, 'contact', NEW.id_contact, [...])
END
Как я могу получить название столбца, это было обновлено, и от этого добираются OLD
и NEW
значения того столбца. Если бы несколько столбцов были обновлены подряд или даже несколько строк, было бы возможно иметь аудит для каждого обновления?
Просто используйте OLD.colname <> NEW.colname для каждого столбца, чтобы проверить и найти те, которые отличаются. Использование триггеров в MySQL немного ограничено, что очень плохо.