이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대한 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 38.1. 스포츠 토토 트리거 동작 개요버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

38.1. 이벤트 토토 사이트 동작 개요#

이벤트는 관련 이벤트가 정의 된 데이터베이스에서 발생할 때마다 발생합니다. 현재 지원되는 이벤트는입니다.로그인, ddl_command_start, ddl_command_end, table_rewriteandSQL_DROP. 향후 릴리스에 추가 이벤트 지원이 추가 될 수 있습니다.

38.1.1. 로그인#

the로그인이벤트는 인증 된 사용자가 시스템에 로그인 할 때 발생합니다. 이 이벤트의 트리거 절차의 버그는 시스템에 성공적인 로그인을 방지 할 수 있습니다. 이러한 버그는 설정을 통해 해결 될 수 있습니다event_triggerstofalse연결 문자열 또는 구성 파일에 있습니다. 또는이 모드에서 이벤트 토토 사이트가 비활성화되므로 단일 사용자 모드에서 시스템을 다시 시작할 수 있습니다. 참조Postgres단일 사용자 모드 사용에 대한 자세한 내용은 참조 페이지입니다. 그만큼로그인이벤트도 대기 서버에서 시작됩니다. 서버가 액세스 할 수없는 것을 방지하려면 토토 사이트는 대기에서 실행할 때 데이터베이스에 아무것도 쓰지 않아야합니다. 또한 장기 쿼리를 피하는 것이 좋습니다로그인이벤트 토토 사이트. 예를 들어, 연결 취소PSQLinprogress를 취소하지 않습니다로그인토토 사이트.

사용 방법에 대한 예는로그인이벤트 토토 사이트, 참조PostgreSQL : 문서 : 18 : 38.5. 데이터베이스 로그인 토토 사이트 트리거 예.

38.1.2. ddl_command_start#

theDDL_COMMAND_START이벤트는 DDL 명령을 실행하기 직전에 발생합니다. 이 맥락에서 DDL 명령은 다음과 같습니다.

  • 생성

  • Alter

  • 드롭

  • 댓글

  • grant

  • 외국 스키마 가져 오기

  • Reindex

  • Refress INSECOUDIED VIEW

  • Revoke

  • 보안 레이블

DDL_COMMAND_STARTa 직전에 발생합니다.선택명령, 이것은에 해당하므로테이블 작성.

공유 개체를 대상으로하는 DDL 명령에 대해서는이 이벤트가 발생하지 않습니다 :

  • 데이터베이스

  • 역할 (역할 정의 및 역할 멤버십)

  • 테이블 스페이스

  • 매개 변수 권한

  • Alter System

이 이벤트는 이벤트가 자신을 토토 사이트하는 명령에 대해서도 발생하지 않습니다.

이벤트 토토 사이트가 발생하기 전에 영향을받는 객체가 존재하는지 또는 존재하지 않는지 확인하지 않습니다.

38.1.3. ddl_command_end#

theddl_command_end이벤트는 동일한 명령 세트를 실행 직후에 발생합니다.ddl_command_start. 에 대한 자세한 내용을 얻으려면DDL발생한 작업, 설정 함수 사용pg_event_trigger_ddl_commands ()에서ddl_command_end이벤트 토토 사이트 코드 (참조섹션 9.30). 조치가 발생한 후 토토 사이트가 발생하지만 (거래가 중단되기 전에) 시스템 카탈로그는 이미 변경된대로 읽을 수 있습니다..

38.1.4. sql_drop#

theSQL_DROP이벤트가 직전에 발생합니다ddl_command_end데이터베이스 개체를 삭제하는 모든 작업에 대한 이벤트 토토 사이트. 명백한 것 외에드롭명령, 일부Alter명령은 an을 토토 사이트 할 수도 있습니다.SQL_DROP이벤트.

삭제 된 개체를 나열하려면 설정 함수를 사용하십시오pg_event_trigger_dropped_objects ()에서SQL_DROP이벤트 토토 사이트 코드 (참조PostgreSQL : 문서 : 18 : 9.30. 배트맨 토토 트리거 기능). 객체가 시스템 카탈로그에서 삭제 된 후 트리거가 실행되므로 더 이상 볼 수 없습니다.

38.1.5. table_rewrite#

thetable_rewrite이벤트는 명령의 일부 작업에 의해 테이블이 다시 작성하기 직전에 발생합니다Alter TableandAlter Type. 다른 제어 진술은와 같은 테이블을 다시 작성할 수 있습니다.클러스터and진공, Thetable_rewrite이벤트는 그들에 의해 토토 사이트되지 않습니다. 다시 작성된 테이블의 Oid를 찾으려면 함수를 사용하십시오pg_event_trigger_table_rewrite_oid (), 재 작성의 이유를 발견하려면 함수 사용pg_event_trigger_table_rewrite_reason ()(참조PostgreSQL : 문서 : 18 : 9.30. 배트맨 토토 트리거 기능).

38.1.6. 중단 된 거래에서 이벤트 트리거#

이벤트 트리거 (다른 기능과 마찬가지로)는 중단 된 거래에서 실행할 수 없습니다. 따라서 DDL 명령에 오류가 발생하지 않으면 관련ddl_command_end토토 사이트는 실행되지 않습니다. 반대로, ADDL_COMMAND_START토토 사이트는 오류가 발생하지 않으며 더 이상 이벤트 토토 사이트가 발사되지 않으며 명령 자체를 실행하려는 시도는 없습니다. 마찬가지로 Addl_command_end트리거 트리거는 오류가 발생하지 않으면 DDL 문의 효과가 포함되는 다른 경우와 마찬가지로 DDL 문의 효과가 롤백됩니다..

38.1.7. 이벤트 토토 사이트 만들기#

이벤트 트리거는 명령을 사용하여 생성됩니다이벤트 토토 사이트 만들기. 이벤트 토토 사이트를 만들려면 먼저 특수 반환 유형으로 함수를 만들어야합니다event_trigger. 이 함수는 값을 반환 할 필요가 없으며 그렇지 않을 수 있습니다. 반환 유형은 단지 이벤트 토토 사이트로 기능을 호출해야한다는 신호로만 사용됩니다.

특정 이벤트에 대해 둘 이상의 이벤트 토토 사이트가 정의되면 토토 사이트 이름으로 알파벳 순서로 발사됩니다..

토토 사이트 정의는 a를 지정할 수도 있습니다.언제예를 들어 a 조건​​DDL_COMMAND_START트리거는 사용자가 인터셉트하려는 특정 명령에 대해서만 해고 될 수 있습니다. 이러한 트리거의 일반적인 사용은 사용자가 수행 할 수있는 DDL 작업 범위를 제한하는 것입니다.