Заставьте текущее обновленное имя столбца использовать в триггере

Существует ли способ на самом деле получить имя столбца, которое было обновлено для использования его в триггере?

В основном я пытаюсь иметь журнал аудита каждый раз, когда пользователь вставляет или обновляет таблицу (в этом случае, это имеет отношение к таблице 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 значения того столбца. Если бы несколько столбцов были обновлены подряд или даже несколько строк, было бы возможно иметь аудит для каждого обновления?

7
задан OMG Ponies 14 May 2011 в 17:07
поделиться

1 ответ

Просто используйте OLD.colname <> NEW.colname для каждого столбца, чтобы проверить и найти те, которые отличаются. Использование триггеров в MySQL немного ограничено, что очень плохо.

8
ответ дан 7 December 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: