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

时间:2013-06-06 14:59:11

标签: postgresql prepared-statement

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

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

1 个答案:

答案 0 :(得分:7)

根据documentationDEALLOCATE是删除预备声明的唯一方法,强调补充:

  

也可以通过创建用于PQexecPrepared的预备语句   执行SQL PREPARE语句。此外,虽然没有libpq   用于删除预准备语句的函数,SQL DEALLOCATE   声明可用于此目的。

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

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