gpt4 book ai didi

Python psycopg2 PostgreSQL 尝试解除分配

转载 作者:行者123 更新时间:2023-11-29 13:00:25 25 4
gpt4 key购买 nike

我想知道是否可以在尝试打开 PostgreSQL 准备语句之前尝试解除分配它

目前我正在使用以下代码来释放所有准备好的语句

cur_deallocate = gv_pgsql.cursor()
cur_deallocate.execute("deallocate all")

cur_users = gv_pgsql.cursor()
cur_users.execute("prepare cur_users as " +
"select * from users")

但是如果在单独的函数中我仍然需要另一个准备好的语句,那么它也将被关闭。但是,如果我使用 deallocate cur_users,则程序将崩溃,并出现无法解除分配不存在的准备语句的错误。

有解决办法吗?尝试解除分配,如果失败则准备语句

最佳答案

在 except block 中捕获错误,或者首先使用 pg_prepared_statements View 查看它是否存在:enter link description here在我们的安装语句中,名称以小写形式存储

def safe_deallocate(self, statement_name):
curs.execute(
"select true from pg_prepared_statements where name = lower(%s)", (statement_name,))
if curs.rowcount:
curs.execute("deallocate {}".format(statement_name))

关于Python psycopg2 PostgreSQL 尝试解除分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32059685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com