[英]Problem with querying in Amazon RDS
嗨,我有一个连接到Amazon RDS计算机并检查新条目的python脚本。 我的脚本可以完美地在localhost上运行。 但是在RDS上,它不会检测到新条目。 一旦我取消脚本并再次运行,我将获得新条目。 为了测试,我像这样尝试了
cont = MySQLdb.connect("localhost","root","password","DB")
cursor = cont.cursor()
for i in range(0, 100):
cursor.execute("Select count(*) from box")
A = cursor.fetchone()
print A
在此过程中,当我添加新条目时,它不会检测到新条目,但是当我关闭连接并再次运行它时,我会得到新条目。 为什么这是我检查了缓存是否为0。我还缺少什么。
我已经在MySQL命令行客户端中看到了这种情况。
我的理解(来自其他人链接到该URL)是Python的API通常默默地创建事务: http : //www.python.org/dev/peps/pep-0249/
如果是这样,那么即使在另一个事务添加行之后,您的光标仍在查看数据的一致版本。 您可以尝试在for
循环中执行cursor.rollback()
以停止运行SELECT
的隐式事务。
我得到了解决方案,这是由于Mysql中的隔离级别,我要做的就是
Set the default transaction isolation level transaction-isolation = READ-COMMITTED
我为此使用Django,所以我必须在Django数据库设置中添加它
'OPTIONS': {
"init_command": "SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.