SQL COMMAND · 会话与参数
UNLISTEN
停止监听通知
stop listening for a notification
UNLISTEN会话与参数引入 6.4(基线)现存至 20 devel2 次语法变更
- 动词
UNLISTEN- 对象
—- 分组
- 会话与参数
- 引入版本
- 6.4(基线)
- 状态
- 现存
- 语法变更次数
- 2
- 手册小节数
- 6
版本轨迹
相对 PostgreSQL 17 无变化。
语法铁道图 PostgreSQL 18
沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。
语法概要
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 语句。
另见
语法演化
相邻大版本之间的差异,新的在前。版本号链接到对应快照。
PostgreSQL 9.0← 8.4语法变化
+ UNLISTEN { channel | * }− UNLISTEN { name | * }正文更新PostgreSQL 8.3← 8.2正文更新
正文更新PostgreSQL 7.4← 7.3语法变化
+ UNLISTEN { name | * }− UNLISTEN { notifyname | * }正文更新PostgreSQL 7.3← 7.2正文更新
正文更新PostgreSQL 7.2← 7.1正文更新
正文更新PostgreSQL 7.1← 7.0文件改名
sql-unlisten.htm → sql-unlisten.html
正文更新PostgreSQL 7.0← 6.5正文更新
正文更新