↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 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 / 7.0 / 6.5 / 6.4
历史版本。 PostgreSQL 7.2 已结束支持。 请参阅 当前版本手册.

UNLISTEN

UNLISTEN — 停止监听某个通知

大纲

UNLISTEN { notifyname | * }
  

输入

notifyname

先前注册的通知条件的名称。

*

清除该后端当前的所有监听注册。

输出

→ UNLISTEN

语句已执行的确认。

描述

UNLISTEN 用于移除一个现有的NOTIFY注册。UNLISTEN 取消当前 PostgreSQL会话作为通知条件 notifyname监听者的任何现有注册。特殊的条件通配符*取消当前会话的所有监听者注册。

NOTIFY 中包含关于LISTEN和 NOTIFY用法的更广泛的讨论。

注解

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

UNLISTEN 在 SQL92 中没有。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.