Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Фиксация изменения любой таблицы в таблице / 2 сообщений из 2, страница 1 из 1
25.07.2017, 18:39
    #39494828
serker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фиксация изменения любой таблицы в таблице
Доброго времени суток.

Возникла следующая задача: при изменении любой из таблиц в базе данных необходимо обновить поле в специальной таблице.
Изменение поля в специальной таблице не учитывать.

Все таблицы в базе InnoDb.

Создавать триггер для каждой таблицы не хотелось бы, да и при создании новой таблицы можно забыть это сделать.

Пока у меня созрело только одно решение:
- включить бинарные логи со сроком хранения 1 сутки;
- с помощью утилиты mysqlbinlog выбирать из них запросы с момента последнего запуска скрипта и записывать в файл;
- с помощью grep искать в файле запросы на изменение (INSERT,UPDATE,DELETE,TRUNCATE,DROP,CREATE,ALTER);
- если хотя бы один запрос найден, то проставлять в поле спец.таблицы время запуска скрипта.

Возможно, кто-то сможет предложить более элегантное и быстрое решение данной задачи ?
Заранее благодарен за Ваши ответы.
...
Рейтинг: 0 / 0
26.07.2017, 13:45
    #39495273
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фиксация изменения любой таблицы в таблице
1. Повесить на стенку плакат "Создавая таблицу - создай триггер обновления поля в специальной таблице".
2. Запретить создавать таблицы.
3. Использовать DDL триггер для автоматического создания триггера при создании новой таблицы.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Фиксация изменения любой таблицы в таблице / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]