Thông kèo bóng đá phápnotifyName
Thông kèo bóng đá pháp điều kiện được kèo bóng đá pháp hiệu.
xác nhận rằng lệnh thông kèo bóng đá pháp đã được thực thi.
Sự kiện được chuyển đến Frontends nghe; cho dù và Cách mỗi ứng dụng Frontend phản ứng phụ thuộc vào Lập trình.
TheThông kèo bóng đá phápLệnh gửi một sự kiện thông kèo bóng đá pháp cho mỗi ứng dụng frontend đã được thực hiện trước đónghenotifyNameĐối với thông kèo bóng đá pháp được chỉ định điều kiện trong cơ sở dữ liệu hiện tại.
Thông tin được truyền đến Frontend cho một sự kiện thông kèo bóng đá pháp Bao gồm tên điều kiện thông kèo bóng đá pháp và phụ trợ thông kèo bóng đá pháp quá trình pid. Tùy thuộc vào nhà thiết kế cơ sở dữ liệu để xác định Tên điều kiện sẽ được sử dụng trong một cơ sở dữ liệu nhất định và những gì Mỗi người có nghĩa là.
Thông thường, tên điều kiện thông kèo bóng đá pháp giống như tên của một số bảng trong cơ sở dữ liệu và sự kiện thông 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ởiThông kèo bóng đá phápvàNghelệnh. Ví dụ, một nhà thiết kế cơ sở dữ liệu có thể sử dụng một số Tên điều kiện để kèo bóng đá pháp hiệu các loại thay đổi khác nhau cho một bàn.
Thông kèo bóng đá phápCung cấp một dạng tín hiệu đơn giản hoặc cơ chế IPC (Truyền kèo bóng đá pháp liên lạc) cho một bộ sưu tập các quy trình truy cập cùngPostgresCơ sở dữ liệu. Cơ chế cấp cao hơn có thể được xây dựng bằng cách sử dụng các bảng trong cơ sở dữ liệu để vượt qua dữ liệu (ngoài một tên điều kiện đơn thuần) từ thông kèo bóng đá pháp đến Người nghe (s).
KhiThông kèo bóng đá phápđược sử dụng để kèo bóng đá pháp 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à đặtThông kèo bóng đá pháp8030_8226
Thông 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ộtThông kèo bóng đá phápđược thực hiện bên trong một giao dịch, thông 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ỏ, chúng tôi muốn tất cả các lệnh trong đó không có hiệu ứng --- bao gồmThông kèo bóng đá pháp. Nhưng nó có thể là khó hiểu nếu một người đang mong đợi các sự kiện thông kèo bóng đá pháp sẽ giao hàng ngay lập tức. Thứ hai, nếu một phụ trợ nghe nhận được một tín hiệu thông kèo bóng đá pháp trong khi nó nằm trong một giao dịch, thông kèo bóng đá pháp sự kiện sẽ không được chuyển đến phía trước được kết nối của nó cho đến khi chỉ Sau 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 thông kèo bóng đá pháp được gửi trong giao dịch sau đó bị hủy bỏ, người ta sẽ muốn thông kèo bóng đá pháp để được hoàn tác bằng cách nào đó --- nhưng phần phụ trợ không thể "Lấy lại" một thông kèo bóng đá pháp một khi nó đã gửi nó đến mặt trận. Vì thế Thông kèo bóng đá pháp các sự kiện chỉ được phân phối giữa các giao dịch. Kết quả cuối cùng trong đó là các ứng dụng sử dụngThông kèo bóng đá phápĐể kèo bóng đá pháp hiệu thời gian thực nên cố gắng giữ các giao dịch của họ ngắn.
Thông kèo bóng đá pháphoạt động như tín hiệu Unix trong một Sự tôn trọng quan trọng: Nếu tên điều kiện tương tự được kèo bóng đá pháp hiệu liên tiếp nhiều lần, người nhận chỉ có thể nhận được một Thông kèo bóng đá pháp cho sự kiện cho một số lần thực hiệnThông kèo bóng đá pháp. Vì vậy, đó là một ý tưởng tồi để phụ thuộc vào số lượng thông kèo bóng đá pháp nhận được. Thay vào đó, sử dụngThông kèo bóng đá phápĐể đánh thức các ứng dụng cần chú ý đến một cái gì đó, và sử dụng một đối tượng cơ sở dữ liệu (như một chuỗi) để theo dõi Điều gì đã xảy ra hoặc nó đã xảy ra bao nhiêu lần.
kèo bóng đá pháp thường cho một frontend gửiThông kèo bóng đá phápĐể nghe cùng tên thông kèo bóng đá pháp chính nó. Trong trường hợp đó, nó sẽ nhận lại một sự kiện thông kèo bóng đá pháp, giống như Tất cả các mặt tiền nghe khác. Tùy thuộc vào ứng dụng Logic, điều này có thể dẫn đến công việc vô dụng --- ví dụ, đọc lại bảng cơ sở dữ liệu để tìm các bản cập nhật tương tự Frontend chỉ viết ra. TRONGPostgres6.4 trở lên, có thể Tránh công việc bổ sung như vậy bằng cách nhận thấy liệu phụ trợ thông kèo bóng đá pháp PID của quy trình (được cung cấp trong thông kèo bóng đá pháp sự kiện thông kèo bóng đá pháp) giống nhau như PID phụ trợ của chính mình (có sẵn từ libpq). Khi họ là Điều tương tự, sự kiện thông 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ể được bỏ qua. (Mặc dù những gì đã được nói trong phần trước Đoạn văn, đây là một kỹ thuật an toàn.Postgresgiữ cho tự thông kèo bóng đá pháp riêng biệt với thông kèo bóng đá pháp đến từ các phụ trợ khác, vì vậy bạn không thể bỏ lỡ một Bên ngoài thông kèo bóng đá pháp bằng cách bỏ qua thông kèo bóng đá pháp của riêng bạn.)
notifyNamecó thể là bất kỳ chuỗi nào hợp lệ như một tên; nó không cần phải tương ứng với tên của bất kỳ Bảng thực tế. Nếu nhưnotifyNameIS Được bao quanh trong các tài liệu kép, nó thậm chí không cần phải là một cú kèo bóng đá pháp Tên hợp lệ, nhưng có thể là bất kỳ chuỗi nào dài tối đa 31 ký tự.
Trong một số bản phát hành trước củaPostgres, notifyNamephải được đặt trong hai quote khi nó không tương ứng với bất kỳ bảng hiện có nào Tên, ngay cả khi có hiệu lực về mặt cú kèo bóng đá pháp như một tên. Đó không còn là yêu cầu.
inPostgresPhát hành trước đến 6.4, phụ trợ PID được gửi trong một thông kèo bóng đá pháp là Luôn luôn là sự phụ thuộc của phụ trợ của chính Frontend. Vì vậy, nó không có thể phân biệt chính mình thông kèo bóng đá pháp với các khách hàng khác ' thông kèo bóng đá pháp trong các bản phát hành trước đó.
- Định cấu hình và thực thi trình tự nghe/thông kèo bóng đá pháp từ PSQL postgres = Nghe ảo; NGHE Postgres = Thông kèo bóng đá pháp ảo; THÔNG BÁO Async thông kèo bóng đá pháp về 'ảo' từ phụ trợ PID '11239' đã nhận
Không cóThông kèo bóng đá phápcâu lệnh trongSQL92.