Python 同步MySQLdb连接看不到更新

Python 同步MySQLdb连接看不到更新,python,mysql,mysql-python,Python,Mysql,Mysql Python,我正在创建几个不同的脚本,它们都与一个中央MySQL数据库交互以共享数据,但我发现,在数据库连接关闭并重新打开之前,我对数据库所做的一些更改不会通过某些脚本传播或可读到某些脚本 例如,在退出并重新启动write\u script后,使用以下代码read\u script仅打印使用write\u script添加到数据库中的项目。我是MySQL新手,所以我不确定我的SQL或python中是否存在问题 读剧本 写剧本 我需要做什么来确保从数据库获取最新数据?默认事务隔离是可重复读取的。这意味着您的r

我正在创建几个不同的脚本,它们都与一个中央MySQL数据库交互以共享数据,但我发现,在数据库连接关闭并重新打开之前,我对数据库所做的一些更改不会通过某些脚本传播或可读到某些脚本

例如,在退出并重新启动
write\u script
后,使用以下代码
read\u script
仅打印使用
write\u script
添加到数据库中的项目。我是MySQL新手,所以我不确定我的SQL或python中是否存在问题

读剧本 写剧本
我需要做什么来确保从数据库获取最新数据?

默认事务隔离是可重复读取的。这意味着您的read_脚本将始终读取并显示相同的数据。将commit放在while循环中。旁注:使用
时间临时读取可能很好。睡眠(1)

默认事务隔离是可重复读取。这意味着您的read_脚本将始终读取并显示相同的数据。将commit放在while循环中。旁注:使用
时间暂停阅读可能很好。睡眠(1)

是的,看起来假设您只执行一个事务,然后断开连接。如果你有不同的需求,那么你需要绕过这个假设。您可以输入一个提交(尽管如果您实际上没有更改数据,我会使用回滚)。或者您可以更改光标上的隔离级别,如@geertjanvdk所述-从我使用的这个:

dbcursor.execute(“设置会话事务隔离级别读取已提交”)

或者,您可以在连接上将自动提交设置为true:

dbconn.autocommit(True)


不过,同样,如果确实在连接中进行了更改,则不建议这样做。

是的,假设您只执行一个事务,然后断开连接。如果你有不同的需求,那么你需要绕过这个假设。您可以输入一个提交(尽管如果您实际上没有更改数据,我会使用回滚)。或者您可以更改光标上的隔离级别,如@geertjanvdk所述-从我使用的这个:

dbcursor.execute(“设置会话事务隔离级别读取已提交”)

或者,您可以在连接上将自动提交设置为true:

dbconn.autocommit(True)

不过,如果实际更改了连接,也不建议这样做

connection = MySQLdb.connect(...)
while True:
    cur = connection.cursor()
    cur.execute("SELECT * FROM my_table")
    print cur.fetchall()
    cur.close()
connection = MySQLdb.connect(...)
cur = connection.cursor()
cur.execute("INSERT INTO my_table VALUES(some_data)")
cur.close()
connection.commit()