gpt4 book ai didi

python - Mysql fetchall方法抛出 "Unread result found"异常

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

我正在从 python 脚本中对 Mysql 执行查询。我正在使用 python 的 anaconda 发行版和 Oracle Mysql 模块。如果我将查询限制为 ~500 行,它将成功执行。高于此值的任何内容都会导致“找到未读结果”异常。我不明白我做错了什么。任何帮助表示赞赏。代码如下:

import mysql.connector
import csv

cnx = mysql.connector.connect(user='user', password='password',
host='server',
port='3306',
database='db',
connect_timeout=2000,
buffered=True)

try:

query = "...large query that returns > 500 records..."

cursor = cnx.cursor()
cursor.execute(query)

print 'this will print'
results = cursor.fetchall()
print 'this will not print'

with open("data.csv", "wb") as csv_file:

csv_writer = csv.writer(csv_file)
csv_writer.writerows(results)

finally:
cursor.close()
cnx.close()

最佳答案

看起来你在缓冲内存中的行时内存不足,你的进程肯定被杀死了。尝试使用流式结果集而不是它(MySQLdb.cursors.SSCursor)。

cnx = MySQLdb.connector.connect(user='user', password='password',
host='server',
port='3306',
database='db',
connect_timeout=2000,
buffered=True)

try:

query = "...large query that returns > 500 records..."
cursor = MySQLdb.SSCursor(conn)
#cursor = cnx.cursor()
cursor.execute(query)
..

关于python - Mysql fetchall方法抛出 "Unread result found"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26541648/

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