(PostgreSQLの)libpqを利用して、すでに準備済みステートメントを作成して使用しています。データベースを切断せずに準備済みステートメントを削除する方法があるかどうか疑問に思っていますか? または、これを達成するための最良の方法は、再接続して再準備することですか?
PostgreSQL バージョン 8.4 の libpq を使用しています。9.2のドキュメントを検索しましたが、これに関連するものは見つかりませんでした...
(PostgreSQLの)libpqを利用して、すでに準備済みステートメントを作成して使用しています。データベースを切断せずに準備済みステートメントを削除する方法があるかどうか疑問に思っていますか? または、これを達成するための最良の方法は、再接続して再準備することですか?
PostgreSQL バージョン 8.4 の libpq を使用しています。9.2のドキュメントを検索しましたが、これに関連するものは見つかりませんでした...
ドキュメントによるとDEALLOCATE
、準備されたステートメントを削除する唯一の方法であり、強調が追加されました。
PQexecPrepared で使用する準備済みステートメントは、SQL PREPARE ステートメントを実行することによっても作成できます。また、準備済みステートメントを削除するための libpq 関数はありませんが、SQL DEALLOCATE ステートメントをその目的で使用できます。
おそらく、これは次のように単純であるため、わざわざ C 関数を公開する必要はありませんでした。
char query[NAMEDATALEN+12];
snprintf(query, sizeof(query), "DEALLOCATE %s", stmtName);
return PQexec(conn, query);