有没有办法删除libpq(PostgreSQL)中已经准备好的语句?
我已经通过使用libpq(PostgreSQL)创建并使用了准备好的语句。我想知道是否有一种方法可以在不断开数据库连接的情况下删除准备好的语句?或者实现这一点的最佳方法是重新连接并重新准备 我使用的是PostgreSQL 8.4版的libpq。我搜索了9.2文档,但找不到与此相关的任何内容…根据,有没有办法删除libpq(PostgreSQL)中已经准备好的语句?,postgresql,prepared-statement,Postgresql,Prepared Statement,我已经通过使用libpq(PostgreSQL)创建并使用了准备好的语句。我想知道是否有一种方法可以在不断开数据库连接的情况下删除准备好的语句?或者实现这一点的最佳方法是重新连接并重新准备 我使用的是PostgreSQL 8.4版的libpq。我搜索了9.2文档,但找不到与此相关的任何内容…根据,DEALLOCATE是删除已准备语句的唯一方法,emphasis补充道: 与PQexecPrepared一起使用的Prepared语句也可以由创建 执行SQLPrepare语句。此外,尽管没有libpq
DEALLOCATE
是删除已准备语句的唯一方法,emphasis补充道:
与PQexecPrepared一起使用的Prepared语句也可以由创建
执行SQLPrepare语句。此外,尽管没有libpq
用于删除准备好的语句的函数,SQL取消分配
语句可用于此目的
他们大概不会为此而费心公开一个C函数,因为这将非常简单:
char query[NAMEDATALEN+12];
snprintf(query, sizeof(query), "DEALLOCATE %s", stmtName);
return PQexec(conn, query);
你的意思是类似于“解除分配”@一个没有名字的马:所以libpq中没有函数,但是这个?我本来希望按照我准备的方式删除该声明。无论如何,非常感谢……我不知道。我不使用libpg,只使用JDBC。@Daniel我有一个预先准备好的语句,它在大多数情况下运行良好。然而,在某个时刻,语句被自动删除,我开始得到“Prepared statement not extists.”错误,请帮助我如何检查Prepared statement是否正确。请帮忙@艾米特:也许你会重新连接。准备好的语句在断开连接时被释放。创建一个新问题,详细说明您的上下文,了解更多信息