無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

40.4. 式

PL/pgSQL 文で使用される式は全て、サーバの主 SQL エクゼキュータを使用して処理されます。 例えば、以下の PL/pgSQL

IF 

expression

 THEN ...

が記述された時、 PL/pgSQL

SELECT 

expression

を主SQLエンジンに供給して、上式を評価します。 項40.10.1 において詳細を説明したように、 SELECT コマンドの形成において PL/pgSQL 変数名は、その都度パラメータによって置換されます。 これにより、 SELECT の問い合わせ計画は一度だけ準備することができ、その後の評価で異なった変数値を代入して再利用されます。 すなわち、式の最初の使用においては、実質的に PREPARE コマンドと同等です。 例えば、2つの整数変数 x y を宣言して、

IF x < y THEN ...

という条件式を記述すると背後では

PREPARE 

statement_name

(integer, integer) AS SELECT $1 < $2;

と同等なプリペアドステートメントが作成されます。 そして IF 文を実行する度に PL/pgSQL の最新の変数値をパラメータ値として供給して、このプリペアドステートメントに対して EXECUTE を行います。 通常この詳細は、 PL/pgSQL ユーザにとって重要ではありませんが、この知識は問題点の解析に有用です。 それ以外の情報は、 項40.10.2 に記述されています。


powered by SEO.CUG.NET