9.3 9.4 9.5 9.6 10 11 12
阿里云PostgreSQL 问题报告 纠错本页面

UNLISTEN

UNLISTEN — 停止监听一个通知

大纲

UNLISTEN { channel | * }

描述

UNLISTEN被用来移除一个已经存在的对 NOTIFY事件的注册。 UNLISTEN取消任何已经存在的把当前 PostgreSQL会话作为名为 channel的通知 频道的监听者的注册。特殊的通配符*取消当前会话 的所有监听者注册。

NOTIFY包含有关LISTENNOTIFY使用的更深入讨论。

参数

channel

一个通知频道的名称(任何标识符)。

*

所有用于这个会话的当前监听注册都会被清除。

注解

你可以 unlisten 你没有监听的东西,不会出现警告或者错误。

在每一个会话末尾,会自动执行UNLISTEN *

一个已经执行了UNLISTEN的事务不能为 两阶段提交做准备。

示例

做一次注册:

LISTEN virtual;
NOTIFY virtual;
Asynchronous notification "virtual" received from server process with PID 8448.

一旦执行了UNLISTEN,进一步的NOTIFY 消息将被忽略:

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

兼容性

SQL 标准中没有UNLISTEN命令。

另见

LISTEN, NOTIFY