PostgreSQL7.0手册-用户手册-19. SQL命令-UNLISTEN
名称
UNLISTEN — 停止监听通知信息
语法
UNLISTEN { notifyname * }
输入
notifyname
早先注册过的通知条件名称.
*
所有此后端当前正在监听的注册都将被清除.
输出
UNLISTEN
命令执行的返回.
描述
UNLISTEN 用于删除一个现有的已注册的 NOTIFY .UNLISTEN 取消当前 Postgres会话的中所有对通知条件 notifyname 监听.特殊的条件通配符 "*" 则取消对当前会话的所有通知条件的监听.
NOTIFY 包含一个对LISTEN 和 NOTIFY 的使用更广泛的讨论.
注意
classname 不必是一个有效的表名,而可以是任何少于32字符的有效字串名.
如果你 UNLISTEN 一个你没有监听的事件,后端不会报错.每个后端在退出时都会自动执行 UNLISTEN * .
在一些早期的 Postgres 版本中,一个不代表一个具体表的 classname (表名)必须用双引号引起,这个限制在目前版本中已经不存在了.
用法
提交一个现存的注册:
postgres=> LISTEN virtual;
LISTEN
postgres=> NOTIFY virtual;
NOTIFY
Asynchronous NOTIFY 'virtual' from backend with pid '8448' received
一旦执行了 UNLISTEN,以后的 NOTIFY 命令将被忽略:
postgres=> UNLISTEN virtual;
UNLISTEN
postgres=> NOTIFY virtual;
NOTIFY
-- notice no NOTIFY event is received
兼容性
SQL92
在 SQL92 里没有 UNLISTEN .