TheThông kèo bóng đá hom nayLệnh gửi một sự kiện thông kèo bóng đá hom nay cho mỗi ứng dụng frontend đã được thực hiện trước đóNghenotifyNameĐối với thông kèo bóng đá hom nay đượ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 đá hom nay Bao gồm tên điều kiện thông kèo bóng đá hom nay và phụ trợ thông kèo bóng đá hom nay 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 đá hom nay 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 đá hom nay về cơ bản có nghĩa"Tôi đã thay đổi bảng này, hãy xem nó để xem có gì mới ". Nhưng không có hiệp hội như vậy được thi hành bởiThông kèo bóng đá hom nayvà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 khác nhau để kèo bóng đá hom nay hiệu khác nhau các loại thay đổi cho một bảng.
Thông kèo bóng đá hom naycung cấp một dạng tín hiệu đơn giản hoặc cơ chế IPC (Truyền thông liên lạc) cho một bộ sưu tập các quy trình truy cập cùngPostgreSQLCơ 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 đá hom nay đến Người nghe (s).
khiThông kèo bóng đá hom nayđược sử dụng để kèo bóng đá hom nay 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 đá hom nayTrong 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, thông kèo bóng đá hom nay 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 đó.
Thông kèo bóng đá hom naytươ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 đá hom nayđược thực hiện bên trong một giao dịch, thông kèo bóng đá hom nay 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 đá hom nay. 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 đá hom nay 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 đá hom nay trong khi nó nằm trong một giao dịch, thông kèo bóng đá hom nay 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 đá hom nay được gửi trong giao dịch sau đó bị hủy bỏ, người ta sẽ muốn thông kèo bóng đá hom nay để đượ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 đá hom nay sau khi nó đã gửi nó đến mặt trận. Vì vậy, thông kèo bóng đá hom nay các sự kiện chỉ được phân phối giữa giao dịch. Kết quả của điều này là các ứng dụng sử dụngThông kèo bóng đá hom nayĐể tín hiệu thời gian thực nên thử để giữ cho các giao dịch của họ ngắn.
Thông kèo bóng đá hom nayHành xử giố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 đá hom nay 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 đá hom nay cho sự kiện cho một số lần thực hiệnThông kèo bóng đá hom nay. Vì vậy, đó là một ý tưởng tồi để phụ thuộc vào số lượng thông kèo bóng đá hom nay nhận được. Thay vào đó, sử dụngThông kèo bóng đá hom nayĐể đá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.
Nó là phổ biến cho một frontend gửiThông kèo bóng đá hom nayĐể nghe theo cùng một tên thông kèo bóng đá hom nay 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 đá hom nay, 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. TRONGPostgreSQL6.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 đá hom nay PID của quy trình (được cung cấp trong thông kèo bóng đá hom nay sự kiện thông kèo bóng đá hom nay) 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 đá hom nay 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.PostgreSQLgiữ cho tự thông kèo bóng đá hom nay riêng biệt với thông kèo bóng đá hom nay đế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 đá hom nay bằng cách bỏ qua thông kèo bóng đá hom nay của riêng bạn.)
tênCó thể là bất kỳ chuỗi nào hợp lệ như một cái tên; nó không cần phải tương ứng với tên của bất kỳ thực tế nào bàn. Nếu nhưtênđược đính kèm hai quote, nó thậm chí không cần phải là một tên hợp lệ về mặt cú pháp, nhưng có thể dài tới 31 ký tự.
Trong một số bản phát hành trước củaPostgreSQL, tênphải được đặt trong các quotes kép khi nó không tương ứng với bất kỳ tên bảng hiện có nào, ngay cả khi hợp lệ về mặt cú pháp như một tên. Điều đó không còn cần thiết nữa.
inPostgreSQLPhát hành Trước 6.4, PID phụ trợ được gửi trong một thông kèo bóng đá hom nay 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 đá hom nay với các khách hàng khác ' thông kèo bóng đá hom nay trong các bản phát hành trước đó.