.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "LISTEN" "" "2003-08-02" "SQL - 言語" "SQL コマンド"
.SH NAME
LISTEN \- 通知の監視
.SH SYNOPSIS
.sp
.nf
LISTEN \fIname\fR
  
.sp
.fi
.SS "入力"
.PP
.TP
\fB\fIname\fB\fR
通知条件の名前です。
.PP
.SS "出力"
.PP
.TP
\fBLISTEN\fR
登録処理が正常終了した場合に返されるメッセージです。
.TP
\fBWARNING: Async_Listen: We are already listening on \fIname\fB\fR
このバックエンドに指定した通知条件が既に登録されていた場合です。
.PP
.SH "説明"
.PP
\fBLISTEN\fR は現在の PostgreSQL バックエンドを、通知条件 \fIname\fR のリスナとして登録します。
.PP
このバックエンドまたは同一データベースに接続している別のバックエンドによって \fBNOTIFY \fIname\fB\fR が実行されると、現在この通知条件を監視しているバックエンド全てに対して通知がなされます。 そして、各バックエンドは同様に接続中のフロントエンドアプリケーションに通知します。より詳細については \fBNOTIFY\fR を参照して下さい。
.PP
\fBUNLISTEN\fR コマンドを使って、バックエンドに登録さ れた指定通知条件を解除できます。また、バックエンドの監視登録は、そのバックエンドプロセスが終了した時点で自動的に削除されます。
.PP
フロントエンドアプリケーションが通知イベントを検出するために使わな ければならない方法は、それがどの PostgreSQL アプリケーションプログラミングインタフェースを使用しているのかに依存します。 アプリケーションは、\fBlibpq\fR ライブラリを使用して \fBLISTEN\fR を通常の SQL コマンドとして発行し、その後、ルーチン \fBPQnotifies\fR を定期的に呼び出して通知イベントが受信されたかどうかを調べる必要があります。 \fBlibpgtcl\fR 等の他のインタフェースの場合は、 通知イベントを扱うためのより高レベルな方法が用意されています。 実際、\fBlibpgtcl\fR を使ったアプリケーションの場合、プログラマが \fBLISTEN\fR や \fBUNLISTEN\fR を直接発行する必要すらありません。 詳細については、ご使用のライブラリのドキュメンテーションを参照してください。
.PP
NOTIFY [\fBnotify\fR(l)]には、\fBLISTEN\fR および \fBNOTIFY\fR についてのより広範な説明があります。
.SS "注釈"
.PP
\fIname\fRは、名前としてどんな文字列でもかまいません。 実テーブルの名前に対応させる必要は全く ありません。\fInotifyname\fR が二重引用符で括られていた場合は、構文的に有効なものである必要すらありません。 しかし、その長さは 63 文字までの任意の文字列という制限があります。
.PP
以前の PostgreSQL のリリースには、 \fIname\fR が文法的には有効であっても既存のテーブル名に対応していない場合は二重引用符で括らなければなりませんでした。これは現在は不要です。
.SH "使用方法"
.PP
\fBpsql\fR から監視/通知処理の設定と実行を行ないます。
.sp
.nf
LISTEN virtual;
NOTIFY virtual;

Asynchronous NOTIFY 'virtual' from backend with pid '8448' received.
.sp
.fi
.SH "互換性"
.SS "SQL92"
.PP
SQL92 に \fBLISTEN\fR はありません。
