UNLISTEN
Synopsis
UNLISTEN { notifyname | * }
入力
- notifyname
事前に登録された通知条件名を指定します。
- *
現在このコマンドの処理を行なうバックエンドにある、全ての監視登録をクリアします。
説明
UNLISTENは、既存の NOTIFY による登録を削除することに使用します。 UNLISTEN は現在の PostgreSQL セッションにある、通知条件 notifyname 用のリスナ登録を全て取り消します。ワイルドカード*は特別な条件を示すもので、現在のセッションにある全てのリスナ登録を取り消します。
NOTIFYには、LISTEN と NOTIFY についての、より広範な説明があります。
注釈
notifyname は有効なクラス名である必要はありませんが、その文字列長には 64 文字までという制限があります。
監視をしていないものに対して UNLISTEN を行なったとしても、バックエンドは警告を行ないません。各バックエンドはその終了時に自動的に UNLISTEN * を実行します。
使用方法
次の既存の登録に対して実行してみます。
LISTEN virtual;
LISTEN
NOTIFY virtual;
NOTIFY
Asynchronous NOTIFY 'virtual' from backend with pid '8448' received
一度 UNLISTEN コマンドが実行されると、下記の例のように、それ以降の NOTIFY コマンドは無視されます。
UNLISTEN virtual;
UNLISTEN
NOTIFY virtual;
NOTIFY
-- NOTIFYイベントを受けとっていないことに注目して下さい。
互換性
SQL92
SQL92 には UNLISTEN 文はありません。