历史版本。 PostgreSQL 6.5 已结束支持。 请参阅 当前版本手册.
大纲
pg_listendbHandlenotifyNamecallbackCommand
输入
-
dbHandle 指定一个有效的数据库句柄。
-
notifyName 指定要开始或停止监听的 notify 条件名。
-
callbackCommand 如果提供且非空,给出匹配的通知到达时要执行的命令字符串。
输出
- None
描述
pg_listen 创建、更改或取消对来自
Postgres 后端的异步 NOTIFY 消息的监听请求。带 callbackCommand 参数时,会建立请求,或替换已存在请求的命令字符串。不带 callbackCommand 参数时,则取消先前的请求。
pg_listen 请求建立之后,每当带有给定名称的
NOTIFY 消息从后端到达时,就执行指定的命令字符串。任何
Postgres 客户端应用程序发出引用该名称的 NOTIFY 命令时都会发生这种情况。(注意,该名称可以是数据库中已存在关系的名称,但不必一定如此。)命令字符串在 Tcl 空闲循环中执行。这是用 Tk 编写的应用程序的正常空闲状态。在非 Tk 的 Tcl shell 中,可以执行 update 或 vwait
来进入空闲循环。
使用 pg_listen 时,不应直接调用 SQL 语句
LISTEN 或 UNLISTEN。Pgtcl 会替你发出这些语句。但如果想自己发送 NOTIFY 消息,可以用 pg_exec 调用 SQL 的
NOTIFY 语句。