UNLISTEN

Name

UNLISTEN  --  通知の監視を停止する。

Synopsis

UNLISTEN { notifyname | * }
  

入力

notifyname

事前に登録された通知条件名。

*

現在このコマンドの処理を行なうバックエンドにある、全ての 監視登録をクリアします。

出力

UNLISTEN

命令文が実行された証明。

説明

UNLISTEN は既存の NOTIFY による登録を削除することに使用されます。 UNLISTEN は現在の Postgres セッショ ンにある、通知条件 notifyname 用のリ スナ登録を全て取り消します。ワイルドカード "*" は特別な条件 を示すもので、現在のセッションにある全てのリスナ登録を取り 消します。

NOTIFY には、LISTENNOTIFY についての、より広範な説明があります。

注意

classname は有効な クラス名である必要はありませんが、その文字列長には 32 文字までと いう制限があります。 (訳注: classname は notifyname の間違いだと思われます。)

監視をしていないものに対して UNLISTEN を行なったとしても、バック エンドは警告を行ないません。 各バックエンドはその終了時に自動的に UNLISTEN * を実行します。

Postgres の以前のリリースにあった、 実際のテーブルに対応していない classname は二重 引用符で括らなければならないという制限はもうありません。 (訳注: classname はnotifyname の間違いだと思われます。なお、 libpq.sgml によると、一般的には notifiyname には関連する classname が使用されるようです。)

使用法

次の既存の登録に対して実行してみます。

postgres=> LISTEN virtual;
LISTEN
postgres=> NOTIFY virtual;
NOTIFY
Asynchronous NOTIFY 'virtual' from backend with pid '8448' received

一度 UNLISTEN コマンドが実行されると、それ以降の NOTIFY コマ ンドは無視されます。

postgres=> UNLISTEN virtual;
UNLISTEN
postgres=> NOTIFY virtual;
NOTIFY
-- NOTIFY イベントを受け取らなかった点に注目して下さい。

互換性

SQL92

SQL92 には UNLISTEN 文は ありません。