#navi(../)
* PostgreSQLでPREPAREしたクエリーを削除する方法・DEALLOCATE [#a576421d]
DEALLOCATEを使うとことにより、PREPAREで定義したクエリーを削除することができます。~
以下に使用例を記します。

#contents
#htmlinsertpcsp(db-top.html,db-sp.html)

* 関連記事 [#b6e94297]
-[[MySQLのPREPAREでPreparedStatementsを作成する方法>MySQL/PREPAREでPreparedStatementsを作成する]]
-[[PostgreSQLのPREPAREでPreparedStatementsを作成する方法>PostgreSQL/PREPAREでPreparedStatementsを作成する]]
-[[MySQLでPREPAREしたクエリーを削除する方法・DEALLOCATE>MySQL/PREPAREしたクエリーを削除する方法・DEALLOCATE]]

* 動作確認環境 [#a5ad0980]
- OS~
CentOS6 x86_64
- PostgreSQL~
PostgreSQL 8.4.13

* PREPAREで同じクエリー名を2回定義してみる [#of12a3b6]
+ psqlコマンドでsakuraデータベースに接続
 -bash-4.1$ psql sakura
 psql (8.4.13)
 "help" でヘルプを表示します.
+ prepareでshow_nowを定義
 sakura=# prepare show_now as
 select now();
 PREPARE
+ 定義したshow_nowを実行
 sakura=# execute show_now;
               now
 -------------------------------
  2013-01-23 23:26:57.612195+09
 (1 行)
+ show_nowを再度prepareで定義するとERRORになる。
 sakura=# prepare show_now as
 select current_timestamp;
 ERROR:  準備された文"show_now"はすでに存在します
 sakura=#

すでに登録されているクエリー名を使用した場合は、ERRORとなります。

* PREPAREで登録したクエリー名を削除する [#s6c42229]
登録されているクエリー定義を削除する構文は以下の通りです。
 DEALLOCATE クエリー名
実際に操作して実行した結果は以下の通りです。
+ PREPAREで1回目の定義
 sakura=# prepare show_now as
 select now();
 PREPARE
+ PREPAREで2回目の定義(すでに存在するためERRORになる)
 sakura=# prepare show_now as
 select current_timestamp;
 ERROR:  準備された文"show_now"はすでに存在します
+ DEALLOCATE クエリー名を実行し削除
 sakura=# deallocate show_now;
 DEALLOCATE
+ 再度PREPAREで定義
 sakura=# prepare show_now as
 select current_timestamp;
 PREPARE
+ PREPAREで定義したクエリーを実行
 sakura=# execute show_now;
               now
 -------------------------------
  2013-01-23 23:32:44.238205+09
 (1 行)

#htmlinsertpcsp(db-btm.html,db-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS