@Che_Bu_Rashka

Как получать уведомления от БД, когда в БД произошло добавление/изменение какой-то таблицы и/или поля в таблице?

Как получать уведомления от БД, когда в БД произошло добавление/изменение какой-то таблицы и/или поля в таблице? То есть клиент заливает (Insert), либо изменяет (Update) в таблице данные, и генерируется событие, на которое "подписан" каким-то образом другое приложение, которое вертится тут же на, той же машине.
Язык любой, БД любая, но желательно PostgreSQL или MySQL. Все что приходит в голову - опрос через короткий промежуток времени посредством обычных запросов и сравнение новых результатов с результатом полученным в прошлый раз. Кажется это Pulling называется? Но так мы замучаем сервер. Или как вариант следить за физическими файлами БД с помощью Watcher на Java, который умеет "видеть" события, сигнализирующее об изменении файла. notification
  • Вопрос задан
  • 953 просмотра
Пригласить эксперта
Ответы на вопрос 3
@kshvakov
В постгресе есть для этого NOTIFY www.postgresql.org/docs/9.4/static/sql-notify.html
Ответ написан
Комментировать
hummingbird
@hummingbird
Триггерами
Ответ написан
@Swartalf
Правильно сказали, триггерами.
Как вариант, создаете триггер который по нужному событию вставляет строчку таблицу с логом.
Отдельно работает внешний скрипт(по крону или демоном) который проверяет таблицу с логом на новые записи и в зависимости от типа записи делать нужные нотификации.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы