UNLISTEN

名称

UNLISTEN — 停止监听通知信息

语法

UNLISTEN { notifyname | * }

输入

notifyname
早先注册过的通知条件名称.
*
所有此后端当前正在监听的注册都将被清除.

输出

UNLISTEN
命令执行的返回.

描述

UNLISTEN 用于删除一个现有的已注册的 NOTIFY .UNLISTEN 取消当前 Postgres会话的中所有对通知条件 notifyname 监听.特殊的条件通配符 "*" 则取消对当前会话的所有通知条件的监听.

NOTIFY 包含一个对LISTENNOTIFY 的使用更广泛的讨论.

注意

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