이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 38.5. 테이블 재 작성 토토 캔 트리거 예버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

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

덕분에table_rewrite이벤트, 유지 관리 기간에만 다시 쓰기를 허용하는 테이블 다시 쓰기 정책을 구현할 수 있습니다.

다음은 그러한 정책을 구현하는 예입니다.

함수 생성 또는 교체 no_rewrite()
 반환 event_trigger
 언어 plpgsql AS
$$
---
--- 로컬 테이블 재작성 정책 구현:
--- public.foo는 다시 쓰는 것이 허용되지 않습니다.
--- 다른 테이블은 오전 1시부터 오전 6시 사이에만 다시 쓰기가 허용됩니다.
--- 블록이 100개를 넘지 않는 한
---
선언
  table_oid oid := pg_event_trigger_table_rewrite_oid();
  current_hour 정수 := extract(현재_시간에서 '시간');
  페이지 정수;
  max_pages 정수 := 100;
시작
  IF pg_event_trigger_table_rewrite_oid() = 'public.foo'::regclass
  그런 다음
        RAISE EXCEPTION '당신'은 %' 테이블을 다시 쓸 수 없습니다.
                        table_oid::regclass;
  종료하면;

  pg_class WHERE oid = table_oid에서 페이지 관련 페이지를 선택하세요.
  IF 페이지  max_pages
  그런 다음
        RAISE EXCEPTION '% 페이지 미만의 테이블에 대해서만 다시 쓰기가 허용됩니다',
                        max_pages;
  종료하면;

  현재_시간이 1과 6 사이가 아닌 경우
  그런 다음
        RAISE EXEPTION '재작성은 오전 1시에서 오전 6시 사이에만 허용됩니다';
  종료하면;
끝;
$$;

이벤트 트리거 생성 no_rewrite_allowed
                  ON 테이블_재작성
   실행 절차 no_rewrite();