39.5. 테이블 재 작성 이벤트 트리거 예

감사합니다table_rewrite와이즈 토토, 유지 보수 Windows에서 다시 작성할 수있는 표 다시 작성 정책을 구현할 수 있습니다.

그러한 정책을 구현하는 예는 다음과 같습니다.

기능 작성 또는 교체 No_rewrite ()
 event_trigger를 반환합니다
 언어 plpgsql AS
$$
---
--- 로컬 테이블 재 작성 정책 구현 :
--- public.foo는 다시 쓰는 것이 허용되지 않습니다
--- 다른 테이블은 오전 1시에서 오전 6시 사이에만 다시 쓰는 것이 허용됩니다.
--- 그들이 100 블록 이상을 가지고 있지 않는 한
---
선언하다
  table_oid oid : = pg_event_trigger_table_rewrite_oid ();
  current_hour 정수 : = 추출물 (current_time의 '시간');
  페이지 정수;
  max_pages 정수 : = 100;
시작하다
  if pg_event_trigger_table_rewrite_oid () = 'public.foo':: regclass
  그 다음에
        예외 제외 '당신은 테이블 %를 다시 쓸 수 없습니다',
                        table_oid :: regclass;
  끝 IF;

  pg_class에서 oid = table_oid;
  페이지 max_pages 인 경우
  그 다음에
        예외적 인 Raving 'Red는 % 페이지 미만의 테이블에만 허용됩니다',
                        max_pages;
  끝 IF;

  현재 _hour가 1과 6 사이가 아닌 경우
  그 다음에
        '오전 1시에서 오전 6시 사이에만 허용 된 재 작성'예외 제외;
  끝 IF;
끝;
$$;

이벤트 트리거 no_rewrite_allowed를 만듭니다
                  table_rewrite에서
   기능 no_rewrite (); 실행

정정 제출

문서에 올바른 것이 없으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면