首页 >数据库 >mysql教程 >如何在 Python 中正确检索 MySQL 存储过程的结果?

如何在 Python 中正确检索 MySQL 存储过程的结果?

DDD
DDD原创
2024-12-01 04:55:17543浏览

How to Properly Retrieve Results from MySQL Stored Procedures in Python?

使用 Python 游标调用 MySQL 存储过程

在 Python 应用程序中使用 MySQL 存储过程时,正确处理结果检索至关重要。尽管看起来很简单,但从过程中检索结果可能会导致一些意外错误。

一个常见的挑战是在使用cursor.fetchall() 时遇到异常“没有可从中获取的结果集”。出现这种情况是因为存储过程通常返回多个结果集,而cursor.fetchall() 被设计为仅迭代一组结果。

要解决此问题,有必要检索感兴趣的特定结果集。这可以使用cursor.stored_results()方法来完成,该方法返回结果集生成器。然后可以使用 fetchall() 单独获取每个结果集。

for result in cursor.stored_results():
    people = result.fetchall()

在某些情况下,您在使用cursor.execute() 时也可能会遇到错误“Use cmd_query_iter for statements with multiple query”。出现这种情况是因为连接器错误地将过程调用解释为多查询语句。

要纠正此问题,建议在执行多个查询时显式设置 multi=True 参数。这可确保连接器正确处理此类场景。

cursor.execute("call getperson(1)", multi=True)

通过遵循这些准则,您可以有效地从存储过程中检索结果并根据需要处理多个结果集。

以上是如何在 Python 中正确检索 MySQL 存储过程的结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn