pg_listen 创建,修改或取消一个对来自 PostgreSQL 服务器的异步通知消息请求的侦听。 带有callbackCommand参数时,建立请求或者已经存在的命令字串被代替。 不带callbackCommand参数时,取消前面一个请求。
在一个 pg_listen 请求建立起来后, 当一个与给定名称匹配的通知消息从服务器到达后就执行声明的命令字串。 当任何PostgreSQL 客户应用发送一个引用该名称的 NOTIFY消息后都会发生这个过程. 命令行字串是从 Tcl 空闲循环运行的.那也是用 Tk 写的应用的正常的空闲状态. 在非 Tk 的 Tcl 脚本里,你可以执行 update 或 vwait 来促使进入空闲循环.
你在使用 pg_listen 时不应该直接调用 SQL 语句 LISTEN或UNLISTEN。 pgtcl会替你使用那些语句。 但是如果你想自己发送一个NOTIFY消息,用 pg_exec 调用 SQL NOTIFY语句。