PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

UNLISTEN

UNLISTEN — 停止监听一个通知

Synopsis

UNLISTEN { channel | * }

描述

UNLISTEN 用于移除针对 NOTIFY 事件的现有注册。UNLISTEN 会取消当前 PostgreSQL 会话作为侦听者在名为 channel 的通知通道上的任何现有注册。特殊的通配符 * 会取消当前会话的所有侦听者注册。

NOTIFY 中包含有关 LISTEN 和 NOTIFY 用法的更详尽的讨论。

参数

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