このエントリーをはてなブックマークに追加


PostgreSQLでPREPAREしたクエリーを削除する方法・DEALLOCATE

DEALLOCATEを使うとことにより、PREPAREで定義したクエリーを削除することができます。
以下に使用例を記します。

関連記事

動作確認環境

  • OS
    CentOS6 x86_64
  • PostgreSQL
    PostgreSQL 8.4.13

PREPAREで同じクエリー名を2回定義してみる

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

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

PREPAREで登録したクエリー名を削除する

登録されているクエリー定義を削除する構文は以下の通りです。

DEALLOCATE クエリー名

実際に操作して実行した結果は以下の通りです。

  1. PREPAREで1回目の定義
    sakura=# prepare show_now as
    select now();
    PREPARE
  2. PREPAREで2回目の定義(すでに存在するためERRORになる)
    sakura=# prepare show_now as
    select current_timestamp;
    ERROR:  準備された文"show_now"はすでに存在します
  3. DEALLOCATE クエリー名を実行し削除
    sakura=# deallocate show_now;
    DEALLOCATE
  4. 再度PREPAREで定義
    sakura=# prepare show_now as
    select current_timestamp;
    PREPARE
  5. PREPAREで定義したクエリーを実行
    sakura=# execute show_now;
                  now
    -------------------------------
     2013-01-23 23:32:44.238205+09
    (1 行)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:08:00