LISTEN

Name

LISTEN -- 監聽一個通知

Synopsis

LISTEN name

描述

LISTEN 將當前會話注冊為通知條件 name. 的監聽器.

當執行了命令 NOTIFY name 後,不管是此會話還是其他聯接到同一數據庫的會話執行的, 所有正在監聽此通知條件的會話都將收到通知, 並且接下來每個會話將通知與其相連的前端應用.請參考 NOTIFY 獲取更多信息.

使用 UNLISTEN 命令,可以將一個會話內已注冊的通知條件刪除. 同樣,會話退出時自動刪除該會話正在監聽的已注冊通知條件.

前端應用檢測通知事件的方法取決于 PostgreSQL 應用使用的編程接口. 如果使用基本的libpq庫, 應用將 LISTEN 當作普通 SQL 命令使用,而且必須週期地調用 PQnotifies 過程來檢測是否有通知到達. 其他像libpgtcl接口提供了更高級的控制通知事件的方法;實際上, 使用libpgtcl,應用程序員不應該直接使用 LISTENUNLISTEN. 請參考你使用的接口的文檔獲取更多細節.

NOTIFY 的手冊頁包含更廣泛的關于 LISTENNOTIFY 的使用的討論.

參數

name

通知條件名.

診斷

LISTEN

成功完成注冊後的返回信息.

WARNING: Async_Listen: We are already listening on name

如果這個後端已經注冊了該通知條件.

例子

psql 裡配制和執行一個監聽/通知序列:

LISTEN virtual;
NOTIFY virtual;
Asynchronous NOTIFY 'virtual' from backend with pid '8448' received.

兼容性

在 SQL 標準裡沒有 LISTEN