4

(PostgreSQLの)libpqを利用して、すでに準備済みステートメントを作成して使用しています。データベースを切断せずに準備済みステートメントを削除する方法があるかどうか疑問に思っていますか? または、これを達成するための最良の方法は、再接続して再準備することですか?

PostgreSQL バージョン 8.4 の libpq を使用しています。9.2のドキュメントを検索しましたが、これに関連するものは見つかりませんでした...

4

2 に答える 2

11

ドキュメントによるとDEALLOCATE、準備されたステートメントを削除する唯一の方法であり、強調が追加されました。

PQexecPrepared で使用する準備済みステートメントは、SQL PREPARE ステートメントを実行することによっても作成できます。また、準備済みステートメントを削除するための libpq 関数はありませんが、SQL DEALLOCATE ステートメントをその目的で使用できます。

おそらく、これは次のように単純であるため、わざわざ C 関数を公開する必要はありませんでした。

  char query[NAMEDATALEN+12];
  snprintf(query, sizeof(query), "DEALLOCATE %s", stmtName);
  return PQexec(conn, query);
于 2013-06-06T16:15:47.850 に答える