Есть ли способ получить имя столбца, которое было обновлено, чтобы использовать его в триггере?Получить текущее обновленное имя столбца для использования в триггере
В основном я пытаюсь иметь аудиторский след всякий раз, когда пользователь вставляет или обновляет таблицу (в данном случае это имеет отношение к Контактной таблице)
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
этого столбца. Если несколько столбцов были обновлены в строке или даже нескольких рядах, можно ли провести аудит для каждого обновления?
Если я не понял, что ты имел в виду, я не совсем уверен, как это помогает мне, я не знаю заранее, что столбец обновляется, так что я не могу hardcode это в триггере. Мне нужно выяснить, какой столбец был обновлен, и вставить его имя в таблицу аудита. – Serge
Итак, вы должны проверить все столбцы. Как я уже говорил, триггеры довольно ограничены в MySQL. –
Я боялся этого ... Итак, если моя таблица имеет 5 столбцов, мне нужно будет использовать операторы if, а также INSERT для каждого, чтобы проверять каждый обновленный столбец? – Serge