PostgreSQL - функции как триггеры

{title}

PostgreSQL позволяет нам использовать разные языки для выполнения функций, эта функция весьма полезна и делает ее одной из самых гибких и мощных баз данных, но она также позволяет использовать такие функции, как триггеры, то есть функции, которые автоматически обнаруживают, какое действие имело место, и детонируют другое действие, то есть, если мы вставим, например, в таблицу, можно активировать триггер, который будет обновлен в другой, для выполнения очень простой операции того, что является триггером.
Функции как триггеры
Никакой заслуги базы данных не должно быть без возможности использования триггеров для автоматического обнаружения и управления изменениями в данных. PostgreSQL предлагает триггеры на уровне предложений и на уровне записей; те, которые находятся на уровне предложения, запускаются один раз для каждого предложения, однако те, которые находятся на уровне записи, могут запускаться много раз, например, если мы выполняем ОБНОВЛЕНИЕ, затрагивающее 1500 записей, триггер уровня предложения будет выполняться только один раз вместо этого регистрация будет выполняться до 1500 раз.
Другим важным моментом в этой теме является различие между инструкциями BEFORE, AFTER и INSTEAD OF в триггере.
Триггер, который работает с BEFORE, запускается перед выполнением команды, давая возможность изменить или отменить или манипулировать данными до того, как они изменятся, триггер AFTER запускается после выполнения изменения, что дает возможность получить данные. модифицированный, этот тип триггера в основном используется в функциях журналирования и репликации, триггер INSTEAD OF выполняется вместо действия, которое обычно выполняется, также другая особенность этого заключается в том, что он работает только с представлениями.
Создайте функцию с помощью триггера
Поскольку, когда мы говорим о функциях, мы знаем, что мы можем использовать другие языки для их выполнения, в случае таких функций, как триггеры, также можно использовать почти любой язык, однако PL / pgSQL является фаворитом для выполнения этих задач, поэтому следующий пример, который мы увидим на изображении, что это будет сделано на этом языке, после того, как мы увидим пример, мы объясним это подробно:

{title}


1. Функция определяется как триггер и может использоваться в любой таблице, в которой есть столбец upd_ts. Значение этого столбца будет изменено перед выполнением возврата. Вызов выполняется в событии BEFORE, потому что, если используется AFTER, все изменения в новой записи будут игнорироваться.
2. Триггер сработает до сохранения записи.
3. Эта функциональность, доступная только в PostgreSQL 9.0 или более поздней версии, позволяет нам изменять только те записи, которые были эффективно затронуты, в предыдущих версиях нам приходилось сравнивать старое и новое поле, однако это не поддерживается для события INSTEAD. OF.
4. Свяжите триггер с таблицей.
На этом мы завершаем этот урок, где мы увидели, как создать триггер, который будет реализован в функции, помимо того, что мы знаем, какие события мы можем использовать, когда они нам нужны.

  • 0