|
|
|
Фиксация изменения любой таблицы в таблице
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Возникла следующая задача: при изменении любой из таблиц в базе данных необходимо обновить поле в специальной таблице. Изменение поля в специальной таблице не учитывать. Все таблицы в базе InnoDb. Создавать триггер для каждой таблицы не хотелось бы, да и при создании новой таблицы можно забыть это сделать. Пока у меня созрело только одно решение: - включить бинарные логи со сроком хранения 1 сутки; - с помощью утилиты mysqlbinlog выбирать из них запросы с момента последнего запуска скрипта и записывать в файл; - с помощью grep искать в файле запросы на изменение (INSERT,UPDATE,DELETE,TRUNCATE,DROP,CREATE,ALTER); - если хотя бы один запрос найден, то проставлять в поле спец.таблицы время запуска скрипта. Возможно, кто-то сможет предложить более элегантное и быстрое решение данной задачи ? Заранее благодарен за Ваши ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2017, 18:39 |
|
||
|
Фиксация изменения любой таблицы в таблице
|
|||
|---|---|---|---|
|
#18+
1. Повесить на стенку плакат "Создавая таблицу - создай триггер обновления поля в специальной таблице". 2. Запретить создавать таблицы. 3. Использовать DDL триггер для автоматического создания триггера при создании новой таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 13:45 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=70&tid=1830521]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 405ms |

| 0 / 0 |
