UNLISTEN

Name

UNLISTEN  --  停止监听通知信息

Synopsis

UNLISTEN { notifyname | * }
  

输入

notifyname

早先注册过的通知条件名称.

*

所有此后端当前正在监听的注册都将被清除.

输出

UNLISTEN

表面该语句已经执行.

描述

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

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

注意

notifyname 不必是一个有效的表名,而可以是任何少于32字符的有效字串名.

如果你 UNLISTEN 一个你没有监听的事件,后端不会报错. 每个后端在退出时都会自动执行 UNLISTEN *

用法

提交一个现存的注册:

LISTEN virtual;
LISTEN
NOTIFY virtual;
NOTIFY
Asynchronous NOTIFY 'virtual' from backend with pid '8448' received

一旦执行了 UNLISTEN,以后的 NOTIFY 命令将被忽略:

UNLISTEN virtual;
UNLISTEN
NOTIFY virtual;
NOTIFY
-- notice no NOTIFY event is received

兼容性

SQL92

SQL92里没有 UNLISTEN