PL/pgSQL
PostgreSQLのストアドプロシージャ。
SQLで制御文(プログラム)が書ける。複雑な条件の処理を定義することが可能。
また、計算と複数の問い合わせをデータベースサーバ内部でひとまとめに実行することができるので、通常のSQLより処理が速いことが多い。
無名ブロック
ストアドプロシージャは関数を定義して、使用時に引数とともに呼び出すことができるが、今回は手始めに関数を定義しない無名ブロックの使用方法を記録する。
書き方
ストアドプロシージャは関数を定義して、使用時に引数とともに呼び出すことができるが、今回は手始めに関数を定義しない無名ブロックの使用方法を記録する。
1 2 3 4 5 6 7 8 9 10 |
DO $body$ DECLARE [変数名] [データ型] [:= 初期値]; --初期値は省略可能 BEGIN [関数を使った処理] END$body$; |
とりあえず最低限の形を書いた。
DO から ENDまでの間に処理を書く
無名関数の場合は、DOからENDまでの間にすべての処理を書く
DECLAREに変数の宣言を書く
DECLEREに変数を宣言し、その変数を処理内で使用する。初期値は入れておくこともできるし、処理の中で代入することも可能。
BEGINに実際の処理を書く
この中で実際に行う処理を書く。変数への値の代入や制御文等の記載が可能。
とりあえず、画面にselect結果を反映させるだけの書き方
実効性はないけど、とりあえず動く書き方を記録。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
DO $body$ DECLARE wr record; BEGIN for wr in select * from user_table loop RAISE NOTICE '%', wr; end loop; END$body$; |
コメント