|
|
|
Фиксация изменения любой таблицы в таблице
|
|||
|---|---|---|---|
|
#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/moderation_log.php?user_name=%D1%85%D1%83%D0%BA%D1%84%D0%B8%D1%88]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
get settings: |
6ms |
get forum list: |
11ms |
get settings: |
9ms |
get forum list: |
12ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
163ms |
get topic data: |
9ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 4674ms |
| total: | 4983ms |

| 0 / 0 |
