Synopsis
UNLISTEN { notifyname | * }
入力
- notifyname
事前に登録された通知条件名を指定します。
- *
現在このコマンドの処理を行なうバックエンドにある、全ての監視登録をクリアします。
説明
UNLISTENは、既存のNOTIFYによる登録を削除することに使用します。UNLISTENは現在の
PostgreSQLセッションにある、通知条件
notifyname用のリスナ登録を全て取り消します。ワイルドカード*は特別な条件を示すもので、現在のセッションにある全てのリスナ登録を取り消します。
NOTIFYには、
LISTENとNOTIFY についての、より広範な説明があります。
注釈
notifyname
は有効なクラス名である必要はありませんが、その文字列長には32文字までという制限があります。
監視をしていないものに対して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文はありません。