使用 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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
中文就是
所以你想继续的话,开启新事务就可以了,比如
conn.commit()
一下。猜测应该是
psycopg2
的实现把execute
的语句当作事务来处理了.所以当某条语句执行失败后