포스트그레SQL이벤트 트리거에서 정보를 검색하기 위해 이러한 도우미 함수를 제공합니다.
배트맨 토토 트리거에 대한 자세한 내용은 참조PostgreSQL : 문서 : 18 : 38 장. 이벤트 무지개 토토.
pg_event_trigger_ddl_commands() →레코드 집합
pg_event_trigger_ddl_commands다음 목록을 반환합니다.DDLa에 연결된 함수에서 호출될 때 각 사용자 작업에 의해 실행되는 명령ddl_command_end배트맨 토토 트리거. 다른 컨텍스트에서 호출되면 오류가 발생합니다.pg_event_trigger_ddl_commands실행된 각 기본 명령에 대해 하나의 행을 반환합니다. 단일 SQL 문장인 일부 명령은 둘 이상의 행을 반환할 수 있습니다. 이 함수는 다음 열을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
분류 |
oid |
객체가 속한 카탈로그의 OID |
오브지드 |
oid |
객체 자체의 OID |
objsubid |
정수 |
하위 개체 ID(예: 열의 속성 번호) |
command_tag |
텍스트 |
명령 태그 |
객체_유형 |
텍스트 |
객체 유형 |
schema_name |
텍스트 |
객체가 속한 스키마의 이름(있는 경우); 그렇지 않으면NULL. 인용이 적용되지 않습니다. |
object_identity |
텍스트 |
객체 ID의 텍스트 렌더링, 스키마 한정. 필요한 경우 ID에 포함된 각 식별자가 인용됩니다. |
in_extension |
부울 |
명령이 확장 스크립트의 일부인 경우 참 |
명령 |
pg_ddl_command |
내부 형식의 명령에 대한 완전한 표현입니다. 직접 출력할 수는 없지만 다른 함수에 전달하여 명령에 대한 다양한 정보를 얻을 수 있습니다. |
pg_event_trigger_dropped_objects() →레코드 집합
pg_event_trigger_dropped_objects명령에 의해 삭제된 모든 개체의 목록을 반환합니다.sql_drop이벤트가 호출됩니다. 다른 컨텍스트에서 호출되면 오류가 발생합니다. 이 함수는 다음 열을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
고급 |
oid |
객체가 속한 카탈로그의 OID |
오브지드 |
oid |
객체 자체의 OID |
objsubid |
정수 |
하위 개체 ID(예: 열의 속성 번호) |
원본 |
부울 |
이것이 삭제의 루트 개체 중 하나인 경우 참 |
정상 |
부울 |
이 객체로 이어지는 종속성 그래프에 정상적인 종속성 관계가 있는 경우 참 |
is_temporary |
부울 |
임시 객체인 경우 참 |
객체_유형 |
텍스트 |
객체 유형 |
schema_name |
텍스트 |
객체가 속한 스키마의 이름(있는 경우). 그렇지 않으면NULL. 인용이 적용되지 않습니다. |
객체_이름 |
텍스트 |
객체의 이름(스키마와 이름의 조합을 객체의 고유 식별자로 사용할 수 있는 경우). 그렇지 않으면NULL. 인용이 적용되지 않으며 이름은 스키마로 한정되지 않습니다. |
object_identity |
텍스트 |
객체 ID의 텍스트 렌더링, 스키마 한정. 필요한 경우 ID에 포함된 각 식별자가 인용됩니다. |
address_names |
텍스트[] |
배열은 다음과 함께객체_유형그리고address_args, 다음에서 사용할 수 있습니다.pg_get_object_address같은 종류의 동일한 이름의 개체가 포함된 원격 서버에서 개체 주소를 다시 생성하는 함수입니다. |
address_args |
텍스트[] |
다음에 대한 보완address_names |
그pg_event_trigger_dropped_objects함수는 다음과 같은 이벤트 트리거에서 사용될 수 있습니다.
함수 생성 test_event_trigger_for_drops()
반환 event_trigger LANGUAGE plpgsql AS $$
선언
obj 레코드;
시작
FOR obj IN SELECT * FROM pg_event_trigger_dropped_objects()
루프
RAISE NOTICE '%가 떨어진 개체: % %.% %',
tg_태그,
obj.object_type,
obj.schema_name,
obj.객체_이름,
obj.object_identity;
엔드 루프;
끝;
$$;
이벤트 트리거 만들기 test_event_trigger_for_drops
켜기 sql_drop
함수 실행 test_event_trigger_for_drops();
다음에 표시된 기능표 9.111다음에 해당하는 테이블에 대한 정보 제공table_rewrite이벤트가 방금 호출되었습니다. 다른 컨텍스트에서 호출되면 오류가 발생합니다.
표 9.111. 테이블 재작성 정보 함수
이 함수는 다음과 같은 이벤트 트리거에서 사용할 수 있습니다:
함수 생성 test_event_trigger_table_rewrite_oid()
반환 event_trigger
언어 plpgsql AS
$$
시작
RAISE NOTICE '% 이유 때문에 테이블 % 다시 쓰기',
pg_event_trigger_table_rewrite_oid()::regclass,
pg_event_trigger_table_rewrite_reason();
끝;
$$;
이벤트 트리거 만들기 test_table_rewrite_oid
ON 테이블_재작성
함수 실행 test_event_trigger_table_rewrite_oid();
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.