psycopg2使用遇到InternalError错误是什么原因,,执行完第 6 行以后,再


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

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

1  import psycopg22  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 = bigintLINE 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的语句当作事务来处理了.

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

编橙之家文章,

评论关闭