我正在尝试 Stackless Python 的并发框架。它包括一个 MySQL 驱动程序,当运行一些以前在 MySQLdb 上运行良好的代码时,它会失败。
我在做什么:
使用带有用户名/密码/端口/数据库的 dbapi 连接到 MySQL 数据库。
执行
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
这失败并显示消息:
Table 'mydatabase.columns' doesn't exist
“mydatabase”是我在步骤 1 中指定的数据库。
在发出“USE mydatabase”后在 MySQL 控制台中执行相同的查询时,它可以完美运行。
检查网络通信会产生如下内容:
>>>myusername
>>>scrambled password
>>>mydatabase
>>>CMD 3 SET AUTOCOMMIT = 0
<<<0
>>>CMD 3 SELECT * FROM INFORMATION_SCHEMA.COLUMNS
<<<255
<<<Table 'mydatabase.columns' doesn't exist
这是驱动程序问题(因为它在 MySQLdb 中有效)?还是我不应该以这种方式查询 INFORMATION_SCHEMA ?
如果我在尝试查询之前发送特定的“USE INFORMATION_SCHEMA”,我会得到预期的结果。但是,我不想让我的代码到处都是“USE”查询。