Вызов функций в теле процедуры
При вызове функции PL/pgSQL из кода PL/pgSQL имя функции
обычно включается в команду SQL SELECT или в команду присваивания:
SELECT функция (.аргументы);
переменная := функция(аргументы);
Подобный
способ вызова функций при выборке и присваивании стал
стандартным, поскольку любая функция PostgreSQL должна возвращать
значение некоторого типа. Ключевое слово PERFORM позволяет
вызвать
функцию и проигнорировать возвращаемое значение:
PERFORM функция (аргументы);
PL/pgSQL и триггеры
Определения триггеров PostgreSQL могут содержать ссылки на
триггерные функции (то есть функции, которые
должны вызываться при
срабатывании триггера), написанные на языке PL/pgSQL. Триггер определяет
операцию, которая должна выполняться при наступлении некоторого
события в базе данных.
Не путайте определение триггера с определением триггерной функции.
Триггер определяется командой SQL CREATE TRIGGER, а триггерная
функция определяется командой SQL CREATE FUNCTION. Синтаксис
определения триггера следующий:
CREATE FUNCTION функция () RETURNS opaque AS '
DECLARE
объявления;
BEGIN
команды;
END:
' LANGUAGE 'plpgsql';
Ниже приведен пример создания триггерной функции.
Обратите
внимание, что
opaque заменено на
“trigger”, что допустимо.
Пример 7.6:
Триггерная функция, которая автоматически для вставляемого значения
поля считает его md5 сумму:
Достарыңызбен бөлісу: