[11/15開催: PostgreSQL Conference Japan 2019 参加受付中] 
他のバージョンの文書 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

LISTEN

Name

LISTEN  --  通知の監視

Synopsis

LISTEN name

入力

name

通知条件の名前です。

出力

LISTEN

登録処理が正常終了した場合に返されるメッセージです。

NOTICE Async_Listen: We are already listening on name

このバックエンドに指定した通知条件が既に登録されていた場合です。

説明

LISTEN は現在の PostgreSQL バックエンドを、通知条件 name のリスナとして登録します。

このバックエンドまたは同一データベースに接続している別のバックエンドによって NOTIFY name が実行されると、現在この通知条件を監視しているバックエンド全てに対して通知がなされます。そして、各バックエンドは同様に接続中のフロントエンドアプリケーションに通知します。より詳細については NOTIFY を参照して下さい。

UNLISTEN コマンドを使って、バックエンドに登録さ れた指定通知条件を解除できます。また、バックエンドの監視登録は、そ のバックエンドプロセスが終了した時点で自動的に削除されます。

フロントエンドアプリケーションが通知イベントを検出するために使わな ければならない方法は、それがどの PostgreSQL アプリケーションプログラミングインタフェースを使用しているのかに依存します。基本的な libpq ライブラリを使う場合は、アプリケーションは通常の SQL コマンドと同様に LISTEN を発行し、そして、通知イベントを受信したかどうかを判断するために PQnotifies 処理を定期的に呼び出す必要があります。libpgtcl 等の他のインタフェースの場合は、 通知イベントを扱うためのより高レベルな方法が用意されています。実際、 libpgtcl を使ったアプリケーションの場合、プログラマが LISTENUNLISTEN を直接発行することすら必要ありません。より詳細については、使用しているライブラリの文書を参照して下さい。

NOTIFY には、LISTENNOTIFY の使用方法に関するより広範な記述があります。

注釈

name は、名前としてど んな文字列でも構いません。実テーブルの名前に対応させる必要は全くありません。notifyname が二重引用符で括られていた場合は、構文的に有効なものである必要すらありません。しかし、その長さは 31 文字までの任意の文字列という制限があります。

以前の PostgreSQL のリリースには、 name が構文的には有効であっても既存のテーブル名に対応していない場合は二重引用符で括らなければなりませんでした。これは現在は不要です。

使用方法

psql から監視/通知処理の設定と実行を行なう。

LISTEN virtual;
NOTIFY virtual;

Asynchronous NOTIFY 'virtual' from backend with pid '8448' received.

互換性

SQL92

SQL92LISTEN はありません。