Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5

38.5. Một bảng viết lại ví dụ kích hoạt sự kèo bóng đá hom nay#

Cảm ơnTable_rewriteSự kèo bóng đá hom nay, có thể thực hiện chính sách viết lại bảng chỉ cho phép viết lại trong Windows bảo trì.

Đây là một ví dụ thực hiện chính sách đó.

Tạo hoặc thay thế hàm NO_REWRITE ()
 Trả về Event_Trigger
 Ngôn ngữ plpgsql như
$$
---
--- Thực hiện chính sách viết lại bảng địa phương:
--- công khai. Không được phép viết lại, bao giờ
--- Các bảng khác chỉ được phép viết lại từ 1 giờ sáng đến 6 giờ sáng
--- Trừ khi chúng có hơn 100 khối
---
TUYÊN BỐ
  TAGE_OID OID: = pg_event_trigger_table_rewrite_oid ();
  Intion_Hour Integer: = Trích xuất ('giờ' từ current_time);
  trang số nguyên;
  Số nguyên MAX_PAGES: = 100;
BẮT ĐẦU
  Nếu pg_event_trigger_table_rewrite_oid () = 'public.foo' :: regClass
  SAU ĐÓ
        Tăng ngoại lệ 'Bạn không được phép viết lại bảng %',
                        TAGE_OID :: RegClass;
  Kết thúc nếu;

  Chọn vào các trang liên quan từ pg_class trong đó oid = table_oid;
  Nếu trang max_pages
  SAU ĐÓ
        Tăng ngoại lệ 'Viết lại chỉ được phép cho bảng có ít hơn % trang',
                        max_pages;
  Kết thúc nếu;

  Nếu current_hour không từ 1 đến 6
  SAU ĐÓ
        Tăng ngoại lệ 'viết lại chỉ được phép từ 1 giờ sáng đến 6 giờ sáng';
  Kết thúc nếu;
KẾT THÚC;
$$;

Tạo sự kèo bóng đá hom nay Trigger No_rewrite_allowed
                  Trên table_rewrite
   Thực thi hàm no_rewrite ();

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.