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 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

kèo bóng đá pháp

tên

kèo bóng đá pháp-Tạo kèo bóng đá pháp

Synopsis

kèo bóng đá phápkênh[,Tải trọng]

Mô tả

Thekèo bóng đá phápLệnh gửi kèo bóng đá pháp sự kiện cùng với một tùy chọn"Tải trọng"Chuỗi cho mỗi ứng dụng máy khách có được thực hiện trước đóNghekênhcho tên kênh được chỉ định Trong cơ sở dữ liệu hiện tại. kèo bóng đá pháp có thể nhìn thấy cho tất cả người dùng.

kèo bóng đá phápCung cấp một bộ phận đơn giản cơ chế giao tiếp cho một tập hợp các quy trình truy cập như nhauPostgreSQLCơ sở dữ liệu. MỘT Chuỗi tải trọng có thể được gửi cùng với kèo bóng đá pháp và Các cơ chế cấp cao hơn để truyền dữ liệu có cấu trúc có thể được xây dựng bởi Sử dụng các bảng trong cơ sở dữ liệu để truyền dữ liệu bổ sung từ kèo bóng đá pháp cho người nghe (s).

Thông tin được truyền cho khách hàng cho một sự kiện kèo bóng đá pháp Bao gồm tên kênh kèo bóng đá pháp, phiên kèo bóng đá pháp Quy trình máy chủPIDvà chuỗi tải trọng, đó là một chuỗi trống nếu nó chưa được được chỉ định.

Tùy thuộc vào nhà thiết kế cơ sở dữ liệu để xác định tên kênh sẽ được sử dụng trong một cơ sở dữ liệu nhất định và mỗi cái có nghĩa là gì. Thông thường, tên kênh giống như tên của một số bảng trong Cơ sở dữ liệu và sự kiện kèo bóng đá pháp về cơ bản có nghĩa là"Tôi đã thay đổi bảng này, hãy xem nó để xem những gì mới". Nhưng không có hiệp hội nào được thi hành bởikèo bóng đá phápNghelệnh. Ví dụ, một nhà thiết kế cơ sở dữ liệu có thể sử dụng một số Tên kênh để báo hiệu các loại thay đổi khác nhau cho một bàn. Ngoài ra, chuỗi tải trọng có thể được sử dụng để phân biệt các trường hợp khác nhau.

Khikèo bóng đá phápđược sử dụng để báo hiệu Sự xuất hiện của các thay đổi đối với một bảng cụ thể, một chương trình hữu ích kỹ thuật là đặtkèo bóng đá phápTrong một quy tắc Điều đó được kích hoạt bởi các bản cập nhật bảng. Theo cách này, kèo bóng đá pháp xảy ra tự động khi bảng được thay đổi và Lập trình viên ứng dụng không thể vô tình quên làm điều đó.

kèo bóng đá pháptương tác với các giao dịch SQL theo một số cách quan trọng. Đầu tiên, nếu mộtkèo bóng đá phápđược thực hiện bên trong một giao dịch, kèo bóng đá pháp các sự kiện không được phân phối cho đến khi và trừ khi giao dịch là tận tụy. Điều này là phù hợp, vì nếu giao dịch là bị hủy bỏ, tất cả các lệnh trong đó không có hiệu lực, bao gồmkèo bóng đá pháp. Nhưng nó có thể gây bối rối nếu một đang mong đợi các sự kiện kèo bóng đá pháp sẽ được gửi ngay lập tức. Thứ hai, nếu phiên nghe nhận tín hiệu kèo bóng đá pháp Mặc dù nó nằm trong một giao dịch, sự kiện kèo bóng đá pháp sẽ không được gửi đến máy khách được kết nối của nó cho đến khi Giao dịch được hoàn thành (đã cam kết hoặc hủy bỏ). Một lần nữa, Lý do là nếu một kèo bóng đá pháp được gửi trong giao dịch sau đó đã bị hủy bỏ, người ta sẽ muốn kèo bóng đá pháp Để hoàn tác bằng cách nào đó - nhưng máy chủ không thể"Lấy lại"13619_13782kèo bóng đá phápĐể tín hiệu thời gian thực nên thử để giữ cho các giao dịch của họ ngắn.

13888_14347kèo bóng đá phápĐảm bảo rằng kèo bóng đá pháp từ cùng một giao dịch được thực hiện theo đơn đặt hàng Họ đã được gửi. Nó cũng được đảm bảo rằng các tin nhắn từ các thông điệp khác nhau Giao dịch được thực hiện theo thứ tự các giao dịch tận tụy.

kèo bóng đá pháp thường cho một máy khách thực hiệnkèo bóng đá phápĐể nghe trên cùng một kèo bóng đá pháp kênh chính nó. Trong trường hợp đó, nó sẽ nhận lại một sự kiện kèo bóng đá pháp, Cũng giống như tất cả các phiên nghe khác. Tùy thuộc vào Logic ứng dụng, điều này có thể dẫn đến công việc vô dụng, ví dụ, Đọc bảng cơ sở dữ liệu để tìm các bản cập nhật tương tự mà phiên đó Chỉ viết ra. Có thể tránh được công việc thêm như vậy bằng cách nhận thấy liệu quá trình máy chủ của phiên kèo bóng đá phápPID(được cung cấp trong sự kiện kèo bóng đá pháp kèo bóng đá pháp) giống như phiên của chính mìnhPID(Có sẵn từ15307_15314). Khi họ giống nhau, Sự kiện kèo bóng đá pháp là công việc của riêng mình nảy trở lại và có thể bị bỏ qua.

tham số

kênh

Tên của kênh kèo bóng đá pháp sẽ được báo hiệu (bất kỳ định danh).

tải trọng

The"tải trọng"Chuỗi thành giao tiếp cùng với kèo bóng đá pháp. Điều này phải được chỉ định là một chuỗi đơn giản theo nghĩa đen. Trong cấu hình mặc định, nó phải là ngắn hơn 8000 byte. (Nếu dữ liệu nhị phân hoặc số lượng lớn thông tin cần được truyền đạt, tốt nhất là đặt nó vào Bảng cơ sở dữ liệu và gửi khóa của bản ghi.)

ghi chú

Có một hàng đợi giữ các kèo bóng đá pháp đã được gửi Nhưng chưa được xử lý bởi tất cả các phiên nghe. Nếu hàng đợi này trở nên đầy đủ, giao dịch gọikèo bóng đá pháp16392_16591nghe16620_16906

Một giao dịch đã thực hiệnkèo bóng đá phápKhông thể chuẩn bị cho cam kết hai pha.

pg_notify

Để gửi kèo bóng đá pháp, bạn cũng có thể sử dụng chức năngpg_notify(Text, Text). Chức năng lấy tên kênh làm đối số đầu tiên và tải trọng làm thứ hai. Chức năng dễ sử dụng hơn nhiều so vớikèo bóng đá phápLệnh nếu bạn cần làm việc với không thể tin Tên và tải trọng kênh.

Ví dụ

Định cấu hình và thực hiện trình tự nghe/kèo bóng đá pháp từPSQL:

Nghe ảo;
kèo bóng đá pháp ảo;
kèo bóng đá pháp không đồng bộ "ảo" nhận được từ quy trình máy chủ với PID 8448.
kèo bóng đá pháp ảo, 'Đây là tải trọng';
kèo bóng đá pháp không đồng bộ "ảo" với tải trọng "Đây là tải trọng" nhận được từ quy trình máy chủ với PID 8448.

Nghe foo;
Chọn pg_notify ('fo' || 'o', 'pay' || 'load');
kèo bóng đá pháp không đồng bộ "foo" với tải trọng "tải trọng" nhận được từ quy trình máy chủ với PID 14728.

Tương thích

Không cókèo bóng đá phápTuyên bố trong SQL tiêu chuẩn.

Xem thêm

nghe, Unlisten