历史版本。 PostgreSQL 10 已结束支持。 2022-11-10. 请参阅 当前版本手册.
UNLISTEN
UNLISTEN — 停止监听通知
大纲
UNLISTEN { channel | * }描述
UNLISTEN 用于移除现有的
NOTIFY 事件注册。UNLISTEN 会取消当前
PostgreSQL 会话作为名为 channel 的通知通道监听者的任何现有注册。特殊通配符* 会取消当前会话的所有监听注册。
NOTIFY 中对 LISTEN 和
NOTIFY 的使用有更详细的讨论。
参数
channel通知通道的名称(任意标识符)。
*该会话当前的所有监听注册都会被清除。
注解
可以取消监听自己并未监听的通道,不会出现警告或错误。
每个会话结束时,都会自动执行 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 语句。