PostgreSQLでPREPAREしたクエリーを削除する方法・DEALLOCATE †
DEALLOCATEを使うとことにより、PREPAREで定義したクエリーを削除することができます。
以下に使用例を記します。
関連記事 †
動作確認環境 †
- OS
CentOS6 x86_64
- PostgreSQL
PostgreSQL 8.4.13
PREPAREで同じクエリー名を2回定義してみる †
- 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で登録したクエリー名を削除する †
登録されているクエリー定義を削除する構文は以下の通りです。
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 行)