2025年9月25日: PostgreSQL 18 发布!
支持的版本:当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本:devel
不支持的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

UNLISTEN

UNLISTEN — 停止监听通知

概要

UNLISTEN { channel | * }

描述

UNLISTEN 用于取消已存在的 NOTIFY 事件的注册。 UNLISTEN 会取消当前 PostgreSQL 会话作为指定通知通道 channel 监听者的所有现有注册。 特殊通配符 * 会取消当前会话的所有监听者注册。

NOTIFY 包含对 LISTENNOTIFY 用法的更详细的讨论。

参数

channel

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

*

此会话的所有当前监听注册都将被清除。

注释

您可以取消监听您从未监听过的内容;不会出现警告或错误。

在每个会话结束时,会自动执行 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 命令。

另请参阅

LISTENNOTIFY

提交更正

如果您在文档中发现任何不正确、与您使用该功能时的实际体验不符或需要进一步澄清的内容,请使用此表单报告文档问题。