42.10.메이저 토토 사이트 기능

pl/pgsql데이터 변경 또는 데이터베이스 이벤트에서 메이저 토토 사이트 기능을 정의하는 데 사용할 수 있습니다. 메이저 토토 사이트 함수는로 생성됩니다.함수 만들기명령, 인수가없고 반환 유형의 함수로 선언메이저 토토 사이트(데이터 변경 메이저 토토 사이트 용) 또는event_trigger(데이터베이스 이벤트 메이저 토토 사이트 용). 특별 지역 변수 이름TG_뭔가통화를 유발 한 조건을 설명하기 위해 자동으로 정의됩니다.

42.10.1.데이터 변경에 대한 메이저 토토 사이트

a롤 토토 : 문서 : 13 : 38인수가없고 반환 유형의 함수로 선언됩니다메이저 토토 사이트. 에 명시된 일부 인수를받을 것으로 예상되는 경우에도 기능은 인수없이 선언되어야합니다.메이저 토토 사이트 만들기- 그러한 주장은를 통해 전달됩니다TG_ARGV, 아래 설명 된대로.

언제pl/pgsql함수는 메이저 토토 사이트라고하며, 여러 특수 변수는 최상위 블록에서 자동으로 생성됩니다. 그들은 :

NEW

데이터 유형레코드; 새 데이터베이스 행을 보유하는 변수삽입/업데이트행 수준 트리거의 작동. 이 변수는 명령문 수준 메이저 토토 사이트가 무효이며삭제운영.

old

데이터 유형레코드; 기존 데이터베이스 행을 보유하는 변수업데이트/삭제로드 레벨 트리거의 작동. 이 변수는 명령문 수준 메이저 토토 사이트가 무효이며삽입운영.

​​tg_name

데이터 유형이름; 방아쇠의 이름이 실제로 해고 된 변수.

TG_WHEN

데이터 유형텍스트; 문자열,이후또는대신13935_13977

TG_LEVEL

데이터 유형텍스트; 둘 중 하나Row또는진술방아쇠의 정의에 따라

TG_OP

데이터 유형텍스트; 문자열삽입,업데이트,삭제또는Truncate메이저 토토 사이트가 발생했는지에 대한 정보.

TG_RELID

데이터 유형OID; 메이저 토토 사이트 호출을 일으킨 테이블의 객체 ID.

tg_relname

데이터 유형이름; 메이저 토토 사이트 호출을 일으킨 테이블의 이름.tg_table_name대신.

tg_table_name

데이터 유형이름; 메이저 토토 사이트 호출을 일으킨 테이블의 이름.

tg_table_schema

데이터 유형이름; 메이저 토토 사이트 호출을 일으킨 테이블 스키마의 이름.

tg_nargs

데이터 유형Integer; 의 메이저 토토 사이트 함수에 대한 인수의 수메이저 토토 사이트 만들기진술.

tg_argv []

데이터 유형 배열텍스트; 의 논쟁메이저 토토 사이트 만들기진술. 인덱스는 0에서 카운트합니다. 유효하지 않은 인덱스 (0보다 작거나tg_nargs) null 값을 초래합니다.

메이저 토토 사이트 함수는 어느 쪽이든 반환해야합니다null또는 테이블의 구조를 가진 레코드/행 값은 메이저 토토 사이트가 발사되었습니다.

로드 레벨 메이저 토토 사이트가 발사되었습니다NULL을 반환하여 메이저 토토 사이트 관리자 에게이 행의 나머지 작업을 건너 뛰도록 신호를 보낼 수 있습니다 (즉, 후속 메이저 토토 사이트가 발사되지 않고삽입/업데이트/삭제이 행에는 발생하지 않습니다). unnull 값이 반환되면 작업은 해당 행 값으로 진행됩니다.NEW삽입 또는 업데이트 될 행을 변경합니다. 따라서 메이저 토토 사이트 함수가 메이저 토토 사이트 조치가 행 값을 변경하지 않고 정상적으로 성공하기를 원한다면NEW(또는 동일한 값)를 반환해야합니다. 저장 될 행을 변경하려면 직접 단일 값을 대체 할 수 있습니다NEW수정 된 반환NEW또는 반품 할 새로운 레코드/행을 구축합니다. 전 트리거의 경우삭제, 반환 된 값은 직접적인 영향을 미치지 않지만 메이저 토토 사이트 조치를 진행할 수 있도록 unnull이어야합니다. 참고NEW삭제메이저 토토 사이트, 따라서 반환하는 것은 일반적으로 합리적이지 않습니다. 일반적인 관용구삭제메이저 토토 사이트는 반환됩니다old.

대신메이저 토토 사이트 (항상로드 레벨 메이저 토토 사이트이며 시야에서만 사용될 수 있음)는 업데이트를 수행하지 않았다는 신호로 NULL을 반환 할 수 있으며이 행의 나머지 작업은 건너 뜁니다 (즉, 이후 메이저 토토 사이트가 발사되지 않아야하며, 후속 메이저 토토 사이트는 주변 환경에 적합하지 않아야합니다.삽입/업데이트/삭제). 그렇지 않으면 메이저 토토 사이트가 요청 된 작업을 수행했음을 알리려면 unnull 값을 반환해야합니다.삽입and업데이트운영, 반환 값은이어야합니다.NEW, 메이저 토토 사이트 함수가 지원하도록 수정할 수있는리턴 삽입and업데이트 반환(이것은 후속 메이저 토토 사이트에게 전달 된 행 값에도 영향을 미치거나 특별한 사람에게 전달됩니다제외AN 내 별명 참조삽입진술이있는충돌에 대한 업데이트절). 을 위한삭제운영, 반환 값은이어야합니다.old.

로드 레벨 트리거의 반환 값이 발사되었습니다이후또는 명세서 수준 메이저 토토 사이트 발사또는이후항상 무시됩니다. 그것은 널가 될 수도 있습니다.

예 42.3메이저 토토 사이트 함수의 예를 보여줍니다pl/pgsql.

예 42.3.에이pl/pgsql메이저 토토 사이트 함수

이 예제 메이저 토토 사이트는 테이블에 행이 삽입되거나 업데이트 될 때마다 현재 사용자 이름과 시간이 행에 찍혀 있는지 확인합니다. 그리고 직원의 이름이 주어지고 급여가 긍정적 인 가치인지 확인합니다.

테이블 emp 생성 (

테이블 로그를 로그하는 또 다른 방법에는 각각 삽입, 업데이트 또는 삭제에 대해 행을 보유하는 새 테이블을 작성하는 것이 포함됩니다. 이 접근법은 테이블에 대한 감사 변경으로 생각할 수 있습니다.예 42.4감사 메이저 토토 사이트 기능의 예를 보여줍니다PL/PGSQL.

예 42.4.에이pl/pgsql감사를위한 메이저 토토 사이트 기능

이 예제 메이저 토토 사이트는에서 행을 삽입, 업데이트 또는 삭제하는지 확인합니다.emp테이블이 기록되어 있습니다 (예 : 감사)emp_audit테이블. 현재 시간과 사용자 이름은 수행 된 작업 유형과 함께 행에 찍혀 있습니다.

테이블 emp 생성 (

이전 예제의 변형은 메인 테이블을 감사 테이블에 연결하는 뷰를 사용하여 각 항목이 마지막으로 수정되었을 때를 표시합니다. 이 접근법은 여전히 ​​테이블 변경의 전체 감사 트레일을 기록하지만 감사 트레일의 단순화 된 관점을 제시하여 각 항목에 대한 감사 트레일에서 파생 된 마지막 수정 된 타임 스탬프 만 보여줍니다..예 42.5뷰에서 감사 트리거의 예를 보여줍니다pl/pgsql.

예 42.5.에이pl/pgsql감사를위한 메이저 토토 사이트 기능보기

이 예제는보기에서 메이저 토토 사이트를 사용하여 업데이트 가능하게 만들고 뷰에서 행을 삽입, 업데이트 또는 삭제하는지 확인하십시오 (즉, 감사)emp_audit테이블. 현재 시간과 사용자 이름은 수행 된 작업 유형과 함께 기록되며, View는 각 행의 마지막 수정 시간을 표시합니다.

테이블 emp 생성 (

메이저 토토 사이트를 한 번 사용하는 것은 다른 테이블의 요약 테이블을 유지하는 것입니다. 결과 요약은 특정 쿼리에 대해 원래 테이블 대신에 사용될 수 있습니다. 종종 실행 시간이 크게 줄어 듭니다.예 42.6메이저 토토 사이트 함수의 예를 보여줍니다pl/pgsql데이터웨어 하우스의 사실 테이블에 대한 요약 테이블을 유지합니다.

예 42.6.에이pl/pgsql요약 테이블을 유지하기위한 메이저 토토 사이트 함수

여기에 자세히 설명 된 스키마는 부분적으로입니다.식료품 점예제데이터웨어 하우스 툴킷By Ralph Kimball.

-

이후메이저 토토 사이트도 사용할 수 있습니다전환 테이블메이저 토토 사이트 진술서에 의해 변경된 전체 행 세트를 검사합니다. 그만큼메이저 토토 사이트 만들기명령은 이름을 하나 또는 두 전환 테이블에 할당 한 다음 해당 이름을 읽기 전용 임시 테이블 인 것처럼 지정할 수 있습니다..예 42.7예를 보여줍니다.

예 42.7.전환 테이블을 사용한 감사

이 예제는와 동일한 결과를 생성합니다.예 42.4, 그러나 모든 행에 해고되는 메이저 토토 사이트를 사용하는 대신 전환 테이블에서 관련 정보를 수집 한 후 명세서 당 한 번 발사되는 메이저 토토 사이트를 사용합니다. 호출 문이 많은 행을 수정했을 때로드 메이저 토토 사이트 접근법보다 훨씬 빠를 수 있습니다.참조조항은 각 사례마다 달라야합니다. 그러나 우리가 선택한 경우 단일 메이저 토토 사이트 기능을 사용하는 것을 막지는 않습니다.TG_OP.)

테이블 emp 생성 (

42.10.2.이벤트에 대한 메이저 토토 사이트

pl/pgsql정의에 사용될 수 있습니다PostgreSQL : 문서.PostgreSQL이벤트 메이저 토토 사이트로 호출되는 함수는 인수가없고 반환 유형의 함수로 선언되어야합니다event_trigger.

언제PL/PGSQL함수를 이벤트 메이저 토토 사이트라고하며, 여러 특수 변수가 최상위 블록에서 자동으로 생성됩니다. 그들은 :

tg_event

데이터 유형텍스트; 메이저 토토 사이트가 발사 된 이벤트를 나타내는 문자열.

TG_TAG

데이터 유형텍스트; 메이저 토토 사이트가 발사되는 명령 태그가 포함 된 변수.

예 42.8이벤트 메이저 토토 사이트 함수의 예를 보여줍니다pl/pgsql.

예 42.8.에이pl/pgsql이벤트 메이저 토토 사이트 함수

이 예제 메이저 토토 사이트는 단순히 a를 올립니다.통지지원되는 명령이 실행될 때마다 메시지.

함수 snitch ()를 만들거나 바꾸십시오. event_trigger를 $$로 반환합니다

정정 제출

문서에 올바른 것이 없으면 일치하지 않습니다.이 양식문서 문제를보고하려면