Ведение журнала аудита на основе MySQL Trigger со сравнением
-
22-08-2019 - |
Вопрос
Рассматривая подобные вопросы, например:
Получение триггера для вставки измененных значений столбца только в таблицу аудита
Стратегии ведения журнала аудита
Я хотел бы сделать еще один шаг вперед и сравнить обновленные данные, чтобы увидеть, действительно ли они были обновлены...Я не уверен, что это идеально (с точки зрения производительности).
Фон:
У нас есть некоторые данные, которые периодически обновляются пользователем.
Когда эти данные будут обновлены, я хотел бы сравнить то, что они предоставили, с тем, что уже есть, и с тем, что они представили, чтобы убедиться, что произошли изменения.
Если произошли изменения, перейдите к записи записи аудита в центральную таблицу истории аудита с описанием измененных полей.
Мысли/идеи?Я приложил все усилия, чтобы найти, но мне не повезло.Я буду рад удалить этот вопрос, если он повторяется.
Спасибо!
Решение
Вы могли бы написать BEFORE UPDATE
триггер, где вы используете OLD
и NEW
псевдонимы в триггере для сравнения значений, которые были доступны в записи до обновления, со значениями, которые вы обновляете.В зависимости от результата сравнения вы можете внести запись в свою таблицу аудита.