Задавайте вопросы, мы ответим
Вы не зашли.
Всё что ищу - всё указывает на планировщик. При чем тут "события" мне не ясно.
В MySQL мне необходимо отловить событие вставки новой записи в некую таблицу.
Без нормального механизма именно событий, в голову приходит что только регулярное чтение генератора (id) этой таблицы, как изменилось значение - событие. Но это слишком "в лоб", очень "грязно".
В Firebird-SQL есть события, которые можно вызывать в триггерах. Допустим при вставки новой записи в таблицу, триггер вызовет событие, которое поймает listener (допустим на другом ПК) и произведет какие-либо действия (чтение например).
Как быть?
Неактивен
А чем обычный триггер не устраивает?
Неактивен
klow написал:
А чем обычный триггер не устраивает?
Чем мне поможет триггер?
Неактивен
мне необходимо отловить событие вставки новой записи в некую таблицу.
Поможет отловить именно это событие. Даже два события: до вставки и после вставки.
Отредактированно klow (17.04.2018 11:47:12)
Неактивен
klow написал:
мне необходимо отловить событие вставки новой записи в некую таблицу.
Поможет отловить именно это событие. Даже два события: до вставки и после вставки.
Топология:
[MySQL клиент 1] --> [MySQL сервер] <-- [MySQL клиент 2]
Все сущности на разных хостах.
"клиент 2" должен отловить событие вставки записи в таблицу TBL1, "клиентом 1".
Как это сделать средствами MySQL?
Повторюсь, в Firebird/Interbase есть специальный механизм, позволяющий в триггере вызвать событие, которое сработает у тех клиентов, которые это событие ждут.
Есть что-то подобное в MySQL?
Неактивен
Выглядит это так:
В триггере вызываем событие: POST_EVENT 'MY_TABLE_UPDATE';
Создаём листенер (пример на PHP): $dbevent = ibase_set_event_handler($ibase, 'dbase_event_handler', 'MY_TABLE_UPDATE');
В dbase_event_handler($event_name, $ibase) произойдет событие, вызванное тем триггером вверху.
Неактивен
Короче пришлось делать через анальный зонд - чтение бинарных логов
Неактивен