在不关闭连接的情况下在 python 中获取更新的 MySQL 表条目

sbh*_*tla 2 python mysql sql

我有 2 个 python 程序正在运行。Script1 定期将条目写入一个表,Script2 从同一个 MySQL 表中读取。两者同时运行。Script2 必须获取表的最后一个(最新添加的)条目。

现在,问题是 Script1 完美地将条目添加到表中,但 Script2 每次都无法读取最新的条目。它仅在我阅读后关闭连接时才读取最新条目,并在我想再次阅读时重新打开它。

这是唯一可以采取的方法吗?有没有办法在不需要每次关闭和打开连接的情况下获取更新的值?访问不断更新的数据库时,程序员遵循的最佳实践是什么?

更详细地:

下面的代码工作正常,但无法显示更新的值。它第一次成功显示了最后一个条目,但接下来的几次 readComm() 被调用,尽管表已被更新,但再次显示相同的条目。

import MySQLdb
import time

db = MySQLdb.connect("localhost", "root", "abc", "abc")
cursor=db.cursor()

def readComm():
    sql = "SELECT * FROM my_table ORDER BY id DESC LIMIT 1;"
    try:
        cursor.execute(sql)
        # Fetch all the rows in a list of lists.
        results = cursor.fetchall()
        print '~~~~', results
    except:
        print "Error! Unable to fetch data" 
    return
for i in range(5):
    readComm()
    time.sleep(10)
Run Code Online (Sandbox Code Playgroud)

如果我修改它,代码会显示更新的值,以便在我每次进入和退出 readComm() 时打开和关闭数据库。

Dan*_*man 5

这只是因为事务内部的读取隔离。db.commit()在每个循环后执行。