Документация по PostgreSQL 9.4.1 | |||
---|---|---|---|
Пред. | Уровень выше | Глава 9. Функции и операторы | След. |
9.28. Функции событийных триггеров
В текущей версии PostgreSQL представлена одна встроенная вспомогательная функция для событийных триггеров, pg_event_trigger_dropped_objects
.
Функция pg_event_trigger_dropped_objects
возвращает список всех объектов, удалённых командой, вызвавшей событие sql_drop. При вызове в другом контексте pg_event_trigger_dropped_objects
выдаёт ошибку. pg_event_trigger_dropped_objects
возвращает следующие колонки:
Имя | Тип | Описание |
---|---|---|
classid | Oid | OID каталога, к которому относится объект |
objid | Oid | OID объекта в каталоге |
objsubid | int32 | Идентификатор подобъекта (например, номер для колонок) |
object_type | text | Тип объекта |
schema_name | text | Имя схемы, к которой относится объект; если объект не относится ни к какой схеме — NULL. В кавычки имя не заключается. |
object_name | text | Имя объекта, если сочетание схемы и имени позволяет уникально идентифицировать объект; в противном случае — NULL. Имя не заключается в кавычки и не дополняется именем схемы. |
object_identity | text | Текстовое представление идентификатора объекта, дополненного схемой. Компоненты этого идентификаторы могут заключаться в кавычки, если требуется. |
Функцию pg_event_trigger_dropped_objects
можно использовать в событийном триггере так:
CREATE FUNCTION test_event_trigger_for_drops() RETURNS event_trigger LANGUAGE plpgsql AS $$ DECLARE obj record; BEGIN FOR obj IN SELECT * FROM pg_event_trigger_dropped_objects() LOOP RAISE NOTICE '% dropped object: % %.% %', tg_tag, obj.object_type, obj.schema_name, obj.object_name, obj.object_identity; END LOOP; END $$; CREATE EVENT TRIGGER test_event_trigger_for_drops ON sql_drop EXECUTE PROCEDURE test_event_trigger_for_drops();
Подробнее о событийных триггерах можно узнать в Главе 37.
Пред. | Начало | След. |
Триггерные функции | Уровень выше | Преобразование типов |