pg_listen

Name

pg_listen — 设置或者改变一个侦听异步 NOTIFY 消息的回调(函数)
pg_listen dbHandle notifyName callbackCommand

输入

dbHandle

声明一个有效的数据库句柄.

notifyName

声明启停侦听(动作)的通知条件名称.

callbackCommand

如果存在且非空,提供一个在匹配的通知到达时执行的命令字符串.

输出

描述

pg_listen 创建,修改或取消一个对来自 Postgres 后端的异步 NOTIFY 消息请求的侦听. 带有 callbackCommand 参数时,建立请求或者已经存在的命令字串被代替. 不带 callbackCommand 参数时,取消前面一个请求.

在一个 pg_listen 请求建立起来后, 当一个与给定名称匹配的 NOTIFY 消息从后端到达后就执行声明的命令字串. 当任何 Postgres 客户应用发送一个引用该名称的 NOTIFY 消息后都会发生这个过程. (注意这个名字可以是,但又不必须是一个数据库里现存的关系.) 命令行字串是从 Tcl 空闲循环运行的.那也是用 Tk 写的应用的正常的空闲状态. 在非 Tk 的 Tcl 脚本里,你可以执行 updatevwait 来促使进入空闲循环.

你在使用 pg_listen 时不应该直接调用 SQL 语句 LISTEN 或 UNLISTEN.Pgtcl 替你使用那些语句. 但是如果你想自己发送一个 NOTIFY 消息,用 pg_exec 调用 SQL NOTIFY 语句.