我正在使用pymysql连接到本地mysql安装。我建立了如下所示的连接,但我的问题是关于最后一行的execute()调用的返回值。
文档说明execute方法的返回值等于受影响的行数。我知道数据库表正好有205299行,所以有人能告诉我为什么看到18446744073709551615这一大得多的行吗?
>>> import pymysql
>>> conn = pymysql.connect(
... host='localhost',
... port=3306,
... user='username',
... passwd='password',
... db='dbname',
... cursorclass = pymysql.cursors.SSCursor
... )
>>> cursor = conn.cursor()
>>> cursor.execute("SELECT support_id FROM tablename")
18446744073709551615
1条答案
按热度按时间j13ufse21#
在你的情况下,问题在于使用
SSCursor
. 阅读您提供的文档,您可以发现以下限制:不过,也有局限性。mysql协议不支持返回总行数,因此判断有多少行的唯一方法是遍历返回的每一行。另外,当前无法向后滚动,因为只有当前行保存在内存中。
因此,如果您想知道有多少行受到影响,请使用缓冲游标
conn.cursor()
而不是服务器1。注意:受影响的行可能不等于表中的行数。