| 젠 토토 : 문서 : 9.6 : 젠 토토 | |||
|---|---|---|---|
| PostgreSQL : 문서 : 9.6 : 이벤트 토토 결과 기능 작성 C | PostgreSQL : 문서 : 9.6 : 이벤트 메이저 토토 사이트 | 38장. 이벤트 스포츠 토토 결과 | PostgreSQL : 문서 : 9.6 : 테이블 다시 토토 핫 이벤트 트리거 예 |
다음은 C로 작성된 이벤트 트리거 함수의 매우 간단한 예입니다. (절차적 언어로 작성된 트리거의 예는 절차적 언어 문서에서 찾을 수 있습니다.)
함수노들호출될 때마다 예외가 발생합니다. 함수와 연결된 이벤트 트리거 정의는ddl_command_start이벤트. 그 결과 모든 DDL 명령(에 언급된 예외 포함)PostgreSQL : 문서 : 9.6 : 이벤트 범퍼카 토토 동작 개요)가 실행되지 않습니다.
이것은 트리거 함수의 소스 코드입니다:
#include "postgres.h"
#include "명령/event_trigger.h"
PG_MODULE_MAGIC;
PG_FUNCTION_INFO_V1(noddl);
데이텀
끄덕끄덕(PG_FUNCTION_ARGS)
EventTriggerData *trigdata;
if (!CALLED_AS_EVENT_TRIGGER(fcinfo)) /* 내부 오류 */
elog(ERROR, "이벤트 스포츠 토토 결과 관리자에 의해 실행되지 않았습니다.");
trigdata = (EventTriggerData *) fcinfo-context;
ereport(오류,
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
errmsg("\"%s\" 명령이 거부되었습니다.", trigdata-tag)));
PG_RETURN_NULL();
소스 코드를 컴파일한 후(참조섹션 36.9.6), 함수와 트리거를 선언합니다.
함수 생성 noddl() 반환 event_trigger
AS 'noddl' 언어 C;
ddl_command_start에서 이벤트 트리거 noddl 생성
실행 절차 noddl();
이제 스포츠 토토 결과 작동을 테스트할 수 있습니다:
=# \dy
이벤트 트리거 목록
이름 | 이벤트 | 소유자 | 활성화됨 | 절차 | 태그
-------+------+-------+---------+------------+------
끄덕끄덕 | ddl_command_start | 어두워 | 활성화 | 끄덕끄덕 |
(1줄)
=# CREATE TABLE foo(id 일련번호);
오류: "CREATE TABLE" 명령이 거부되었습니다.
이 상황에서 필요할 때 일부 DDL 명령을 실행할 수 있으려면 이벤트 스포츠 토토 결과를 삭제하거나 비활성화해야 합니다. 트랜잭션 기간 동안에만 스포츠 토토 결과를 비활성화하는 것이 편리할 수 있습니다.
시작; ALTER EVENT TRIGGER noddl 비활성화; CREATE TABLE foo(ID 일련번호); ALTER EVENT TRIGGER noddl 활성화; 커밋;
(이벤트 스포츠 토토 결과 자체의 DDL 명령은 이벤트 스포츠 토토 결과의 영향을 받지 않는다는 점을 기억하세요.)
| PostgreSQL : 문서 : 9.6 : 이벤트 토토 결과 기능 작성 C | 젠 토토 : 문서 : 9.6 : 젠 토토 9.6.24 문서화 | PostgreSQL : 문서 : 9.6 : 테이블 다시 토토 핫 이벤트 트리거 예 |
| C에서 이벤트 트리거 함수 작성 | PostgreSQL : 문서 : 9.6 : 이벤트 메이저 토토 사이트 | 테이블 재작성 이벤트 스포츠 토토 결과 예 |