有没有办法在libpq(PostgreSQL)中删除已经准备好的语句?

Mal*_*glu 2 postgresql prepared-statement

我已经使用libpq(PostgreSQL)创建和使用预处理语句.我想知道是否有办法删除准备好的语句而不断开数据库?或者实现这一目标的最佳方法是重新连接和重新准备?

我正在使用PostgreSQL版本8.4的libpq.我搜索了9.2文档,但找不到与此相关的任何内容......

Dan*_*ité 9

根据文档,DEALLOCATE是删除准备好的声明的唯一方法,强调补充:

也可以通过执行SQL PREPARE语句来创建与PQexecPrepared一起使用的预准备语句.此外,虽然没有用于删除准备语句的libpq函数,但SQL DEALLOCATE语句可用于此目的.

据推测,他们并不打算为此公开一个C函数,因为这将简单到:

  char query[NAMEDATALEN+12];
  snprintf(query, sizeof(query), "DEALLOCATE %s", stmtName);
  return PQexec(conn, query);
Run Code Online (Sandbox Code Playgroud)

  • @Amit:也许你会重新连接。断开连接时会释放准备好的语句。创建一个新问题,其中包含有关您的上下文的详细信息以了解更多信息 (2认同)