SQL COMMAND · 会话与参数
UNLISTEN
停止监听通知
UNLISTEN会话与参数引入 10(基线)现存至 20 devel0 次语法变更
- 动词
UNLISTEN- 对象
—- 分组
- 会话与参数
- 引入版本
- 10(基线)
- 状态
- 现存
- 语法变更次数
- 0
- 手册小节数
- 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 14← 13正文更新
正文更新