【发布时间】:2023-03-26 05:14:01
【问题描述】:
我有 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)
如果我修改代码,则代码会显示更新的值,以便在我每次进入和退出 readComm() 时分别打开和关闭 DB。
【问题讨论】: