UNLISTEN
停止监听通知
英文手册覆盖始于 PostgreSQL 6.4. 来源历史与运行验证各自保留独立版本边界。
当前阅读 PG 18·选择有来源记录的版本
- anchor
- SQL-UNLISTEN
- file
- sql-unlisten.html
- lang
- en
- name
- UNLISTEN
- purpose
- stop listening for a notification
- purpose zh
- 未知
- sections same as
- 未知
- slug
- 18
- synopsis html
- UNLISTEN { <em class="replaceable"><code>channel</code></em> | * }
- synopsis text
- UNLISTEN { channel | * }
语法
UNLISTEN { channel | * }语法图
从左向右阅读;分支表示选择,旁路表示可选,循环表示重复。点击带下划线的参数可打开对应规则。
版本定义 PG 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语句。
另见
LISTEN, NOTIFY比较版本
来源引用
定义来源
center · PostgreSQL 18 · a709ab85
正文语言: zh-Hans · 1b5ca64c