gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 04:20:56 27 4
gpt4 key购买 nike

我有 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.commit()

关于python - 在不关闭连接的情况下在 python 中获取更新的 MySQL 表条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24415699/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com