我正在使用python 3.6和mysql.connector从我的MySQL数据库中查询数据。
我注意到一个奇怪的效果:mysql.connector似乎以某种方式缓存了结果。如果我将db之间的数据更改为查询之间,则查询仍然返回相同的(过时的)结果。
仅当我重新启动python脚本时,我才从mysql.connector获取新数据。
db = mysql.connector.connect(
host="localhost",
user="...",
passwd="...",
database="..."
)
cursor = db.cursor(dictionary=True, buffered=True)
cursor.execute('SELECT `name` FROM `users` WHERE `uid`=1')
print(cursor._rows[0])
cursor.close()
返回:
(bytearray(b'Old Username'),)
现在,我使用phpmyadmin更改该用户的用户名:
UPDATE `users` SET `name` = 'New Username' WHERE `users`.`uid` = 1;
然后我在python控制台中重复查询:
cursor = db.cursor(dictionary=True, buffered=True)
cursor.execute('SELECT `name` FROM `users` WHERE `uid`=1')
print(cursor._rows[0])
cursor.close()
返回:
(bytearray(b'Old Username'),)
当我重新启动python控制台并再次查询时,我得到了新的用户名。
好像mysql.connector并没有真正运行该查询,而是传递了一些缓存的结果...我该如何关闭呢?