PostgreSQL 8.2.3 中文文档
后退快退快进前进

LISTEN

名称

LISTEN -- 监听一个通知

语法

LISTEN name

描述

LISTEN 将当前会话注册为通知条件 name 的监听器。如果当前会话已经被注册为该通知条件的监听器,那么什么也不做。

当执行了命令 NOTIFY name 后,不管是此会话还是其它连接到同一数据库的会话,所有正在监听此通知条件的会话都将收到通知,并且接下来每个会话将通知与其相连的前端应用。请参考 NOTIFY 获取更多信息。

使用 UNLISTEN 命令可以将一个会话内已注册的通知条件删除。同样,会话退出时自动删除该会话正在监听的已注册通知条件。

前端应用检测通知事件的方法取决于 PostgreSQL 应用使用的编程接口。如果使用基本的 libpq 库,那么应用将 LISTEN 当作普通 SQL 命令使用,而且必须周期地调用 PQnotifies 过程来检测是否有通知到达。其它像 libpgtcl 接口提供了更高级的控制通知事件的方法;实际上,使用 libpgtcl 的应用程序员不应该直接使用 LISTENUNLISTEN 。请参考你使用的接口的文档获取更多细节。

NOTIFY 的手册页包含更广泛的关于 LISTENNOTIFY 的使用的讨论。

参数

name

通知条件的名字,可以是任意标识符。

例子

psql 里配制和执行一个监听/通知序列:

LISTEN virtual;
NOTIFY virtual;
Asynchronous notification "virtual" received from server process with PID 8448.

兼容性

SQL 标准里没有 LISTEN 语句。

又见

NOTIFY, UNLISTEN

后退首页前进
INSERT上一级LOAD