UNLISTEN

停止监听通知。

概要

UNLISTEN { <channel> | * }

描述

UNLISTEN用于取消对NOTIFY事件的现有注册。该命令将取消当前数据库会话在名为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语句。

另见

LISTEN, NOTIFY