이벤트는 관련 이벤트가 정의 된 데이터베이스에서 발생할 때마다 발생합니다. 현재 지원되는 이벤트는입니다.로그인
, ddl_command_start
, ddl_command_end
, table_rewrite
andSQL_DROP
. 향후 릴리스에 추가 이벤트 지원이 추가 될 수 있습니다.
the로그인
이벤트는 인증 된 사용자가 시스템에 로그인 할 때 발생합니다. 이 이벤트의 트리거 절차의 버그는 시스템에 성공적인 로그인을 방지 할 수 있습니다. 이러한 버그는 설정을 통해 해결 될 수 있습니다event_triggerstofalse
연결 문자열 또는 구성 파일에 있습니다. 또는이 모드에서 이벤트 토토 사이트가 비활성화되므로 단일 사용자 모드에서 시스템을 다시 시작할 수 있습니다. 참조Postgres단일 사용자 모드 사용에 대한 자세한 내용은 참조 페이지입니다. 그만큼로그인
이벤트도 대기 서버에서 시작됩니다. 서버가 액세스 할 수없는 것을 방지하려면 토토 사이트는 대기에서 실행할 때 데이터베이스에 아무것도 쓰지 않아야합니다. 또한 장기 쿼리를 피하는 것이 좋습니다로그인
이벤트 토토 사이트. 예를 들어, 연결 취소PSQLinprogress를 취소하지 않습니다로그인
토토 사이트.
사용 방법에 대한 예는로그인
이벤트 토토 사이트, 참조PostgreSQL : 문서 : 18 : 38.5. 데이터베이스 로그인 토토 사이트 트리거 예.
theDDL_COMMAND_START
이벤트는 DDL 명령을 실행하기 직전에 발생합니다. 이 맥락에서 DDL 명령은 다음과 같습니다.
생성
Alter
드롭
댓글
grant
외국 스키마 가져 오기
Reindex
Refress INSECOUDIED VIEW
Revoke
보안 레이블
DDL_COMMAND_START
a 직전에 발생합니다.선택
명령, 이것은에 해당하므로테이블 작성
.
공유 개체를 대상으로하는 DDL 명령에 대해서는이 이벤트가 발생하지 않습니다 :
데이터베이스
역할 (역할 정의 및 역할 멤버십)
테이블 스페이스
매개 변수 권한
Alter System
이 이벤트는 이벤트가 자신을 토토 사이트하는 명령에 대해서도 발생하지 않습니다.
이벤트 토토 사이트가 발생하기 전에 영향을받는 객체가 존재하는지 또는 존재하지 않는지 확인하지 않습니다.
theddl_command_end
이벤트는 동일한 명령 세트를 실행 직후에 발생합니다.ddl_command_start
. 에 대한 자세한 내용을 얻으려면DDL발생한 작업, 설정 함수 사용pg_event_trigger_ddl_commands ()
에서ddl_command_end
이벤트 토토 사이트 코드 (참조섹션 9.30). 조치가 발생한 후 토토 사이트가 발생하지만 (거래가 중단되기 전에) 시스템 카탈로그는 이미 변경된대로 읽을 수 있습니다..
theSQL_DROP
이벤트가 직전에 발생합니다ddl_command_end
데이터베이스 개체를 삭제하는 모든 작업에 대한 이벤트 토토 사이트. 명백한 것 외에드롭
명령, 일부Alter
명령은 an을 토토 사이트 할 수도 있습니다.SQL_DROP
이벤트.
삭제 된 개체를 나열하려면 설정 함수를 사용하십시오pg_event_trigger_dropped_objects ()
에서SQL_DROP
이벤트 토토 사이트 코드 (참조PostgreSQL : 문서 : 18 : 9.30. 배트맨 토토 트리거 기능). 객체가 시스템 카탈로그에서 삭제 된 후 트리거가 실행되므로 더 이상 볼 수 없습니다.
thetable_rewrite
이벤트는 명령의 일부 작업에 의해 테이블이 다시 작성하기 직전에 발생합니다Alter Table
andAlter Type
. 다른 제어 진술은와 같은 테이블을 다시 작성할 수 있습니다.클러스터
and진공
, Thetable_rewrite
이벤트는 그들에 의해 토토 사이트되지 않습니다. 다시 작성된 테이블의 Oid를 찾으려면 함수를 사용하십시오pg_event_trigger_table_rewrite_oid ()
, 재 작성의 이유를 발견하려면 함수 사용pg_event_trigger_table_rewrite_reason ()
(참조PostgreSQL : 문서 : 18 : 9.30. 배트맨 토토 트리거 기능).
이벤트 트리거 (다른 기능과 마찬가지로)는 중단 된 거래에서 실행할 수 없습니다. 따라서 DDL 명령에 오류가 발생하지 않으면 관련ddl_command_end
토토 사이트는 실행되지 않습니다. 반대로, ADDL_COMMAND_START
토토 사이트는 오류가 발생하지 않으며 더 이상 이벤트 토토 사이트가 발사되지 않으며 명령 자체를 실행하려는 시도는 없습니다. 마찬가지로 Addl_command_end
트리거 트리거는 오류가 발생하지 않으면 DDL 문의 효과가 포함되는 다른 경우와 마찬가지로 DDL 문의 효과가 롤백됩니다..
이벤트 트리거는 명령을 사용하여 생성됩니다이벤트 토토 사이트 만들기. 이벤트 토토 사이트를 만들려면 먼저 특수 반환 유형으로 함수를 만들어야합니다event_trigger
. 이 함수는 값을 반환 할 필요가 없으며 그렇지 않을 수 있습니다. 반환 유형은 단지 이벤트 토토 사이트로 기능을 호출해야한다는 신호로만 사용됩니다.
특정 이벤트에 대해 둘 이상의 이벤트 토토 사이트가 정의되면 토토 사이트 이름으로 알파벳 순서로 발사됩니다..
토토 사이트 정의는 a를 지정할 수도 있습니다.언제
예를 들어 a 조건DDL_COMMAND_START
트리거는 사용자가 인터셉트하려는 특정 명령에 대해서만 해고 될 수 있습니다. 이러한 트리거의 일반적인 사용은 사용자가 수행 할 수있는 DDL 작업 범위를 제한하는 것입니다.