【发布时间】:2019-05-06 13:52:45
【问题描述】:
我有一个脚本正在运行,我想在将数据添加到数据库时对其进行处理。
import mysql.connector
import time
wait_time = 2
mydb = mysql.connector.connect(
host="localhost",
user="xxx",
passwd="yyy",
database="my_database"
)
mycursor = mydb.cursor()
while True:
sql = "SELECT * FROM data WHERE processed = 0"
mycursor.execute(sql)
records = mycursor.fetchall()
for i, r in enumerate(records):
print(r)
time.sleep(wait_time)
但是,如果通过不同的连接插入一行,则该连接不显示。
即如果我通过第三方应用程序连接到我的数据库,并在
中插入一行但是,如果我重新启动上述脚本,它就会出现。
有什么想法吗?
【问题讨论】:
-
试试looking at this。也许你的库正在缓存结果。
-
这是由于默认的 MySQL 隔离级别 REPEATABLE READ。 This answer 简要解释一下。在您的
while循环的每次迭代中提交您的连接,以刷新您的查询读取的快照。