MySQLdb - fetchone()的值不会改变

时间:2013-09-19 08:16:50

标签: python mysql-python

这就是我在Python中所做的:

>>> import MySQLdb
>>> connect = MySQLdb.connect(...)
>>> cur = connect.cursor()
>>> cur.execute('select max(Logid) from Log;')
1L
>>> cur.fetchone()
(1044122L,)
>>> cur.execute('select max(Logid) from Log;')
1L
>>> cur.fetchone()
(1044122L,)

这就是我在mysql中所做的:

mysql> select max(Logid) from Log;
+------------+
| max(Logid) |
+------------+
| 1044116 |
+------------+
1 row in set (0.00 sec)

mysql> select max(Logid) from Log;
+------------+
| max(Logid) |
+------------+
| 1044123 |
+------------+
1 row in set (0.00 sec)

首先,我认为这只是fetchone()的值与mysql的不同。 因为我在不同的时间搜索,所以价值已经改变。

但是,最后,我发现,fetchone()的价值根本没有变化...... 除了我退出python,然后再次运行python,值将被更改...

为什么呢? 我在MySQLdb中执行select,但为什么值保持不变?

THX !!

1 个答案:

答案 0 :(得分:0)

使用connect.autocommit(True)确保连接保持最新状态。

有关详情,请参阅here