选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / SQL 命令 / 会话与参数

SQL COMMAND · 会话与参数

UNLISTEN

停止监听通知

UNLISTEN会话与参数引入 10(基线)现存至 20 devel0 次语法变更

动词
UNLISTEN
对象
引入版本
10(基线)
状态
现存
语法变更次数
0
手册小节数
6

本站手册 · 18官方文档 ↗

版本轨迹

相对 PostgreSQL 17 无变化。

语法铁道图 PostgreSQL 18

沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。

UNLISTEN channel *

语法概要

UNLISTEN { channel | * }

PostgreSQL 18 手册 · 查看完整参考页

描述

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语句。

另见

语法演化

相邻大版本之间的差异,新的在前。版本号链接到对应快照。

  1. PostgreSQL 14← 13正文更新

    正文更新

同组命令

命令动词对象版本变动最近变更
SESSIONS & SETTINGS会话与参数8 条
DISCARDDISCARD
丢弃会话状态现存
LISTENLISTEN
监听通知现存
NOTIFYNOTIFY
发出一个通知现存
RESETRESET
将一个运行时参数的值恢复为默认值现存
SETSET 191 次
更改运行时参数现存
SHOWSHOW
显示一个运行时参数的值现存
UNLISTENUNLISTEN
停止监听通知现存
ALTER SYSTEMALTERSYSTEM 111 次
更改服务器配置参数现存