玩蛇网提供最新Python编程技术信息以及Python资源下载!

psycopg2使用遇到InternalError错误是什么原因

执行完第 6 行以后,再怎么执行都抛出 InternalError.

请问有没有办法执行完第 6 行后还能继续查询?

1  import psycopg2
2  conn = psycopg2.connect("dbname=test user=test")
3  cur = conn.cursor()
4  cur.execute("select phone from account where phone = %s;", ("13366668888",))
5  cur.fetchone()
6  cur.execute("select phone from account where phone = %s;", (13366668888,))
7  cur.execute("select phone from account where phone = %s;", ("13366668888",))

输出如下(省略了 Traceback):

Out[5]: ('13366668888',)

Out[6]: ProgrammingError: operator does not exist: character varying = bigint
LINE 1: select phone from account where phone = 13366668888;
                                              ^
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.

Out[7]: InternalError: current transaction is aborted, commands ignored until end of transaction block

中文就是

所以你想继续的话,开启新事务就可以了,比如 conn.commit() 一下。

猜测应该是psycopg2的实现把execute的语句当作事务来处理了.

所以当某条语句执行失败后

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd20088.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月22日 - 11时19分34秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules