- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我使用mysql.connector 做SQL 操作。我有一个简短的脚本,它使用 cursor.execute(...)
在光标上执行以下操作(字符串):
"use {}".format(db)
"show tables"
command = """
ALTER TABLE Object DROP PRIMARY KEY;
ALTER TABLE Object ADD `id` bigint(20) NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST;
ALTER TABLE Object ADD INDEX (`uid`);"""
脚本遍历多个数据库db
。
问题是有时我会收到“未读结果”错误。似乎当我运行脚本时,在某些时候“使用 mydb”会返回一个结果(cursor._have_result=True),而我没想到会这样。奇怪的是,如果我重新运行完整的脚本,它会运行更长的时间,更多的数据库稍后会给出相同的错误。
您能否提出解决或调查此问题的方法?有什么办法可以防止“未读结果”吗?
PS:当我重新运行脚本时,对于已经完成的数据库,ALTER 命令会失败。不确定这是否会导致问题。
最佳答案
使用 MySQL Connector/Python,Unread results found 可能发生在您在不同地方使用连接对象而不读取结果时。这不是一个人可以绕过的事情。您可以使用 buffered option立即读取结果。
评论中提到,最好拆分语句,分别执行。
如果你想执行多条语句,你需要使用multi=True option for the MySQLCursor.execute()方法(自 Connector/Python v1.0.4 起)。实际上,如果您不使用 multi 选项并发送多个语句,则会引发 InterfaceError。 (我也怀疑这里有一个错误..)
补充说明:
您最好将更改分组到一个 ALTER TABLE 语句中,如下所示:
ALTER TABLE t1 DROP PRIMARY KEY,ADD id INT NOT NULL AUTO_INCREMENT KEY FIRST,ADD INDEX(c1)
关于python - MySQL 未读结果与 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15336767/
我正在尝试实现类似于电子邮件中的已读/未读的功能。我如何通过使用 jquery、php 和 mysql 来实现。我想分步执行的操作: 1- 当我单击 html 表中的一行时,我更改了此消息在数据库中的
如何确定消息状态(已读/未读)。聊天是通过 XMPP 协议(protocol)实现的。 最佳答案 XEP-0184 : Message Delivery Receipts 支持在消息已送达时通知发件人
上下文:我们正在实现一个新闻应用程序。现在,您可以假设所有用户的新闻都是相同的,并根据我们设置的参数(根据趋势和日期)维护订单。 问题:我们不确定跟踪用户阅读内容的最佳实现是什么。我们希望能够配置一种
好吧,另一个有趣的问题是 50 号公路。 我们想实现一个真正的论坛灯泡系统,其中用户未读的帖子(在创建用户帐户后)显示为未读,直到该状态被清除或直到用户阅读它们。 我们认为最好和最简单的方法是实现一个
我正在使用来自 google reader's API 的数据开发应用程序并使用 GData用于登录。 我希望能够将表格单元格内的帖子标记为已读/未读,但我发现这主要是未记录的,很难找到解决方案,有什
我的 C 程序已从 Linux 上的 TCP 套接字读取(使用 read(2) 或 recv(2))几个字节。是否可以将这些字节推回,以便后续的 read(2) 和 recv(2) 调用(在我无法控制
我是一名优秀的程序员,十分优秀!