Что такое триггер (database trigger)?

Триггер - это фрагмент кода, который запускается до или после того, как таблица будет модифицирована. Существует три события, которые могут инициировать запуск триггера:
- INSERT event (новая запись была вставлена в базу данных)
- UPDATE event (запись была изменена)
- DELETE event (запись была удалена)
Триггеры могут урезать доступ к определенным данным, выполнять операции логирования и т.д.
![]() |
Как можно отслеживать все изменения в базе данных? |
Если вы хотите отслеживать все данные определенной записи, например кто модифицировал запись, какой тип модификации был произведен, и когда модификация записи случилась, тогда вы можете использовать триггеры, поскольку можно отслеживать любое событие, которое случилось в определенной таблице. Например, INSERT триггер будет инициирован, когда определенная таблица базы данных была вставлена.
![]() |
Как можно взаимодействовать между двумя приложениями, которые используют одну и ту же базу данных для обновления кеша приложения? |
Алгоритм следующий.
- Когда приложение 1 обновляет/вставляет продукт в таблицу "product"
- Триггер инициируется для модификации статуса таблицы "product_pooling" в состояние "Занято" из состояния "Готово" для обновлений и созданий новых записей.
- Приложение 2 опрашивает таблицу "product_pooling", скажем каждые 5 минут. Если статус "Занято", тогда приложение 2 читает обновленные данные из таблицы продуктов и обновляет кеш.
- Если статус "Готово", тогда приложение 2 повторит попытку через 5 минут.
Конец
Материалы, которые могут вас заинтересовать
- Выражения INSERT, UPDATE, DELETE
- Что такое представление (view)? Каково предназначение?
- Как повысить производительность базы данных?
- Как реализовать one-to-one, one-to-many, many-to-many отношения во время проектирования таблиц?
- Что такое нормализация? Когда следует проводить денормализацию?
- Что такое sub-query? Как он влияет на производительность?
- Объединения таблиц. Inner and outer joins.
- Ленивая инициализация или Lazy Initialization в Hibernate
- Hibernate. Many-to-one ассоциации








Отправить комментарий