gpt4 book ai didi

python - 在 MySQLdb 游标上执行多条语句

转载 作者:行者123 更新时间:2023-11-30 22:53:27 25 4
gpt4 key购买 nike

我想在具有 MyISAM 存储的数据库上的 MySQLdb 游标上执行多个语句。我按照此 answer 中解释的所有其他方式进行操作和其他地方,没有成功。

>>> import MySQLdb as mdb
>>> from contextlib import closing

>>> con = mdb.connect('host', 'user', 'password', 'database')

>>> with closing(con.cursor()) as cur:
>>> cur.callproc('add_date', [1418112000])
>>> cur.callproc('add_date', [1418119000])
>>> #con.commit()
>>> cur.close()

_mysql_exceptions.ProgrammingError: (2014, "Commands out of sync; you can't run this command now")

因为表的存储是MyISAM,所以我应该不需要调用commit()。事实上,如果我调用 commit(),我会遇到一个错误。

调用多个语句的正确方法是什么?

最佳答案

调用该过程后,您必须关闭游标并再次打开它,然后才能使用它执行另一条语句:

cur.close()

cur = con.cursor()

游标可以在fetchall() 之后立即关闭。结果集仍然存在并且可以循环。您必须在调用存储过程后清理/关闭游标才能执行进一步的 sql 代码。这不是 Python 的问题,而是 MySQL 的问题。

关于python - 在 MySQLdb 游标上执行多条语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27370900/

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