[英]Is there a way to delete an already prepared statement in libpq (of PostgreSQL)?
我已經通過利用 libpq(PostgreSQL 的)創建和使用准備好的語句。 我想知道是否有辦法在不斷開數據庫的情況下刪除准備好的語句? 或者實現這一目標的最佳方法是重新連接和重新准備?
我正在使用 PostgreSQL 8.4 版的 libpq。 我搜索了 9.2 文檔,但找不到與此相關的任何內容...
根據文檔 , DEALLOCATE
是刪除准備好的語句的唯一方法,重點是:
也可以通過執行SQL PREPARE語句來創建與PQexecPrepared一起使用的預處理語句。 同樣,盡管沒有libpq函數可刪除准備好的語句 ,但SQL DEALLOCATE語句可用於該目的。
大概他們不必為此而暴露C函數,因為這很簡單:
char query[NAMEDATALEN+12];
snprintf(query, sizeof(query), "DEALLOCATE %s", stmtName);
return PQexec(conn, query);
正如@Amit 提到的,有時 Postgress 會拋出“准備好的語句不存在”。
不幸的是,沒有DEALLOCATE IF EXISTS
,但一個簡單的解決方法是: DEALLOCATE ALL;
.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.