#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)