젠 토토 : 문서 : 9.6 : 젠 토토 9.6.24 문서화 | |||
---|---|---|---|
PostgreSQL : 문서 : 9.6 : 데이터 윈 토토 가시성 | 스포츠 토토 : 문서 : 9.6 : 트리거 | 37 장. 스포츠 토토 베트맨 | 토토 : 문서 : 9.6 : 완전한 트리거 예 |
이 섹션에서는 인터페이스의 스포츠 토토 베트맨 기능에 대한 낮은 수준 세부 사항에 대해 설명합니다. 이 정보는 C에서 스포츠 토토 베트맨 기능을 작성할 때만 필요합니다. 더 높은 수준의 언어를 사용하는 경우 이러한 세부 사항은 처리됩니다. 대부분의 경우 스포츠 토토 베트맨를 작성하기 전에 절차 적 언어 사용을 고려해야합니다. 각 절차 언어의 문서는 해당 언어로 스포츠 토토 베트맨를 작성하는 방법을 설명합니다..
스포츠 토토 베트맨 함수는를 사용해야합니다."버전 1"기능 관리자 인터페이스.
스포츠 토토 베트맨 관리자가 함수를 호출 할 때 정상적인 인수가 전달되지는 않지만 A 전달됩니다."컨텍스트"포인터를 가리키는 포인터TriggerData구조. C 기능은 매크로를 실행하여 스포츠 토토 베트맨 관리자로부터 호출되었는지 여부를 확인할 수 있습니다.
pall_as_trigger (fcinfo)
로 확장되는 :
((fcinfo)- context! = null && isa ((fcinfo)- context, triggerdata)
이것이 진실을 반환하면 캐스트하는 것이 안전합니다fcinfo- 컨텍스트to TypeTriggerData *TriggerData구조. 함수는not변경TriggerData구조 또는 그것이 가리키는 데이터 중 하나입니다.
StrugerData명령/trigger.h:
typedef strugdata nodetag 유형; triggerevent tg_event; 관계 tg_relation; heappuple tg_trigtuple; heappuple tg_newtuple; 스포츠 토토 베트맨 *tg_trigger; 버퍼 TG_TRIGTUPLEBUF; 버퍼 TG_NEWTUPLEBUF; triggerData;
회원이 다음과 같이 정의되는 곳 :
항상t_triggerData.
함수가 호출되는 이벤트를 설명합니다. 다음 매크로를 사용하여 검사 할 수 있습니다tg_event:
수술 전에 스포츠 토토 베트맨가 발사 된 경우 TRUE를 반환합니다.
수술 후 스포츠 토토 베트맨가 발사 된 경우 TRUE를 반환합니다.
작업 대신 스포츠 토토 베트맨가 발사 된 경우 TRUE를 반환합니다.
스포츠 토토 베트맨가로드 레벨 이벤트에 해고 된 경우 true를 반환합니다.
진술 수준 이벤트에 대한 스포츠 토토 베트맨가 발사 된 경우 True를 반환합니다.
스포츠 토토 베트맨가 해고 된 경우 true를 반환합니다삽입명령.
스포츠 토토 베트맨가 해고 된 경우 true를 반환합니다업데이트명령.
스포츠 토토 베트맨가 a에 해고 된 경우 true를 반환합니다.삭제명령.
스포츠 토토 베트맨가 a에 해고 된 경우 true를 반환합니다.Truncate명령.
스포츠 토토 베트맨가 발사 된 관계를 설명하는 구조에 대한 포인터. 보기utils/rel.h이 구조에 대한 자세한 내용. 가장 흥미로운 것은입니다.tg_relation- rd_att(관계 튜플의 설명 자) 및tg_relation- rd_rel- relname(관계 이름; 유형이 아님char*그러나paminata; 사용spi_getrelname (tg_relation)achar*이름의 사본이 필요한 경우).
스포츠 토토 베트맨가 발사 된 행에 대한 포인터. 이것은 삽입, 업데이트 또는 삭제되는 행입니다. 이 방아쇠가 해고 된 경우삽입또는삭제그런 다음 행을 다른 행으로 바꾸고 싶지 않으면 () 행을 다른 행으로 바꾸지 않으려면 기능에서 반환해야합니다.삽입) 또는 작업을 건너 뛰십시오. 외국 테이블의 스포츠 토토 베트맨의 경우, 본 명세서의 시스템 열 값은 지정되지 않습니다.
스포츠 토토 베트맨가 an을 위해 발사 된 경우 새 버전의 행에 대한 포인터업데이트및NULL삽입또는 A삭제. 이벤트가 인 경우 기능에서 반환 해야하는 것입니다.업데이트그리고이 행을 다른 행으로 교체하거나 작업을 건너 뛰고 싶지 않습니다. 외국 테이블의 스포츠 토토 베트맨의 경우, 본 명세서의 시스템 열 값은 지정되지 않습니다.
유형 구조에 대한 포인터스포츠 토토 베트맨, 정의utils/reltrigger.h:
typedef 구조 스포츠 토토 베트맨 oid tgoid; char *tgname; OID tgfoid; int16 tgtype; 문자; bool tgisinternal; Oid tgconstrelid; Oid tgconstrindid; Oid tgconstraint; bool tgdeferrable; bool tginitdeferred; int16 tgnargs; int16 tgnattr; int16 *tgattr; char ** tgargs; char *tgqual; 방아쇠;
여기서tgname스포츠 토토 베트맨 이름입니다.tgnargstgargs및tgargs|스포츠 토토 베트맨 만들기진술. 다른 회원은 내부 사용만을위한 것입니다.
버퍼를 포함하는tg_trigtuple또는invalidbuffer튜플이 없거나 디스크 버퍼에 저장되지 않은 경우
버퍼를 포함하는tg_newtuple또는invalidbuffer튜플이 없거나 디스크 버퍼에 저장되지 않은 경우
스포츠 토토 베트맨 함수는 a를 반환해야합니다.Heappuple포인터 또는 ANULL포인터 (아님SQL NULL 값, 즉 설정하지 않습니다isnulltrue). 둘 중 하나를 조심하십시오tg_trigtuple또는tg_newtuple, 적절하게 작동중인 행을 수정하지 않으려면.
PostgreSQL : 문서 : 9.6 : 데이터 윈 토토 가시성 | 젠 스포츠 토토 베트맨 : 문서 : 9.6 : 젠 토토 9.6.24 문서화 | 토토 : 문서 : 9.6 : 완전한 트리거 예 |
데이터 변경의 가시성 | 스포츠 토토 : 문서 : 9.6 : 트리거 | 완전한 스포츠 토토 베트맨 예 |