| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| 토토 꽁 머니 : 문서 : 9.3 : 데이터 변경의 가시성 | 토토 사이트 : 문서 : 9.3 : 트리거 | 제36장. 토토 사이트 순위 | 사설 토토 : 문서 : 9.3 : 완전한 트리거 예 | |
이 섹션에서는 인터페이스의 하위 수준 세부정보를 설명합니다. 토토 사이트 순위 기능. 이 정보는 글을 쓸 때만 필요합니다. C의 토토 사이트 순위 함수. 더 높은 수준의 언어를 사용하는 경우 그러면 이러한 세부정보가 자동으로 처리됩니다. 대부분의 경우 토토 사이트 순위를 작성하기 전에 절차적 언어 사용을 고려하세요. C에서. 각 절차적 언어의 문서에는 다음을 수행하는 방법이 설명되어 있습니다. 해당 언어로 토토 사이트 순위를 작성하세요.
토토 사이트 순위 기능은 다음을 사용해야 합니다."버전 1"함수 관리자 인터페이스.
토토 사이트 순위 관리자가 함수를 호출하면 함수가 호출되지 않습니다. 일반 인수를 전달했지만 a가 전달되었습니다."컨텍스트"a를 가리키는 포인터토토 사이트 순위데이터구조. C 함수는 확인할 수 있습니다 토토 사이트 순위 관리자로부터 호출되었는지 여부 매크로 실행:
CALLED_AS_TRIGGER(fcinfo)
다음으로 확장:
((fcinfo)-컨텍스트 != NULL && IsA((fcinfo)-컨텍스트, TriggerData))
이것이 true를 반환하면 전송하는 것이 안전합니다.fcinfo-컨텍스트입력하려면토토 사이트 순위데이터 *그리고 가리키는 것을 활용토토 사이트 순위데이터구조. 기능 필수아님변경토토 사이트 순위데이터구조 또는 다음 중 하나 그것이 가리키는 데이터입니다.
구조 TriggerData다음에 정의됨명령/trigger.h:
typedef 구조체 TriggerData
NodeTag 유형;
TriggerEvent tg_event;
관계 tg_relation;
힙튜플 tg_trigtuple;
힙튜플 tg_newtuple;
토토 사이트 순위 *tg_trigger;
버퍼 tg_trigtuplebuf;
버퍼 tg_newtuplebuf;
TriggerData;
여기서 구성원은 다음과 같이 정의됩니다:
항상T_TriggerData.
함수가 호출되는 이벤트를 설명합니다. 당신은 할 수 있습니다 다음 매크로를 사용하여 조사하세요.tg_event:
작업 전에 토토 사이트 순위가 실행되면 참을 반환합니다.
작업 후 토토 사이트 순위가 실행되면 true를 반환합니다.
작업 대신 토토 사이트 순위가 실행되면 참을 반환합니다.
행 수준 이벤트에 대해 토토 사이트 순위가 실행되면 참을 반환합니다.
문 수준에서 토토 사이트 순위가 실행되면 참을 반환합니다. 이벤트.
토토 사이트 순위가 다음에 의해 실행된 경우 참을 반환합니다.삽입명령.
토토 사이트 순위가 다음에 의해 실행된 경우 참을 반환합니다.업데이트명령.
토토 사이트 순위가 다음에 의해 실행된 경우 참을 반환합니다.삭제명령.
토토 사이트 순위가 다음에 의해 실행된 경우 참을 반환합니다.잘라내기명령.
관계를 설명하는 구조에 대한 포인터 방아쇠가 발사되었습니다. 보세요utils/rel.h이 구조에 대한 자세한 내용을 확인하세요. 가장 흥미로운 점은 다음과 같습니다.tg_relation-rd_att(설명자 관계 튜플) 및tg_relation-rd_rel-relname(관계 이름; 유형이 아닙니다.문자*하지만이름데이터; 사용SPI_getrelname(tg_relation)을 얻으려면문자*이름 사본이 필요한 경우).
토토 사이트 순위가 실행된 행에 대한 포인터. 이것은 삽입, 업데이트 또는 삭제되는 행입니다. 이 토토 사이트 순위가 해고되었습니다.삽입또는삭제그럼 이것이 당신이 반환해야 할 것입니다 행을 다른 행으로 바꾸고 싶지 않은 경우 기능 (의 경우삽입) 또는 건너뛰기 작동합니다.
토토 사이트 순위가 다음인 경우 행의 새 버전에 대한 포인터 해고되었습니다.업데이트및NULL만일 그것이라면삽입또는 a삭제. 이것이 당신이 해야 할 일이다 이벤트가 다음과 같은 경우 함수에서 반환됩니다.업데이트그리고 당신은 이 행을 다음으로 대체하고 싶지 않습니다. 다른 것을 선택하거나 작업을 건너뛰세요.
유형의 구조에 대한 포인터토토 사이트 순위, 정의됨utils/reltrigger.h:
typedef 구조체 토토 사이트 순위
이드 tgoid;
char *tgname;
Oid tgfoid;
int16 tgtype;
차트 활성화;
bool tgisinternal;
Oid tgconstrrelid;
Oid tgconstrindid;
Oid tg제약;
bool tgdeferrable;
bool tginitdeferred;
int16 tgnars;
int16 tgnattr;
int16 *tgattr;
char **tgargs;
char *tgqual;
토토 사이트 순위;
어디에서tgname토토 사이트 순위의 이름입니다.tgnars는의 인수 수입니다.tgargs및tgargs은 인수에 대한 포인터 배열입니다. 에 지정됨토토 사이트 순위 생성성명. 다른 구성원은 내부 전용입니다.
다음을 포함하는 버퍼tg_trigttuple, 또는잘못된 버퍼그러한 튜플이 없는 경우 또는 디스크 버퍼에 저장되지 않습니다.
다음을 포함하는 버퍼tg_newtuple, 또는잘못된 버퍼그러한 튜플이 없는 경우 또는 디스크 버퍼에 저장되지 않습니다.
토토 사이트 순위 함수는 다음 중 하나를 반환해야 합니다.힙튜플포인터 또는 aNULL포인터 (아님SQL null 값, 즉 설정되지 않음isNull참). 주의하세요 둘 중 하나를 반환tg_trigttuple또는tg_newtuple, 적절하다면 작업 중인 행을 수정하고 싶지 않습니다.
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 데이터 가시성 변경사항 | 토토 사이트 : 문서 : 9.3 : 트리거 | 완전한 방아쇠 예시 |