LISTEN  --  Listen for a response on a notify condition 通知条件について応答を監視する。





Name of notify condition.




Message returned upon successful completion of registration.


NOTICE Async_Listen: We are already listening on name

If this backend is already registered for that notify condition.



LISTEN registers the current Postgres backend as a listener on the notify condition name.

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

Whenever the command NOTIFY name is invoked, either by this backend or another one connected to the same database, all the backends currently listening on that notify condition are notified, and each will in turn notify its connected frontend application. See the discussion of NOTIFY for more information.

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

A backend can be unregistered for a given notify condition with the UNLISTEN command. Also, a backend's listen registrations are automatically cleared when the backend process exits.

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

The method a frontend application must use to detect notify events depends on which Postgres application programming interface it uses. With the basic libpq library, the application issues LISTEN as an ordinary SQL command, and then must periodically call the routine PQnotifies to find out whether any notify events have been received. Other interfaces such as libpgtcl provide higher-level methods for handling notify events; indeed, with libpgtcl the application programmer should not even issue LISTEN or UNLISTEN directly. See the documentation for the library you are using for more details.

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

The reference page for NOTIFY contains a more extensive discussion of the use of LISTEN and NOTIFY.

NOTIFY のレファレンスページには、 LISTENNOTIFY の使用方法 に関するより広範な記述があります。


name can be any string valid as a name; it need not correspond to the name of any actual table. If notifyname is enclosed in double-quotes, it need not even be a syntactically valid name, but can be any string up to 31 characters long.

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

In some previous releases of Postgres, name had to be enclosed in double-quotes when it did not correspond to any existing table name, even if syntactically valid as a name. That is no longer required.

以前の Postgres のリリースには、 name が文法的には有 効であっても既存のテーブル名に対応していない場合はダブルクォート で括らなければなりませんでした。これは現在は不要です。


Configure and execute a listen/notify sequence from psql:

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

LISTEN virtual;
NOTIFY virtual;

ASYNC NOTIFY of 'virtual' from backend pid '11239' received



There is no LISTEN in SQL92.

SQL92 には LISTEN はあり ません。