UNLISTEN — 停止监听一个通知
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 命令。