更改记录查询或关闭交易中的隔离级别

问题描述 投票:1回答:1

我正在尝试使用Kenneth Reitz's records library构建一些自动测试脚本。我需要在这里和那里检查MySQL数据库以获取更新。

db_url_mysql = 'mysql://user:[email protected]:3306/DB'
db = records.Database(db_url_mysql)
rows = db.query("SELECT * FROM Users").all()

但是,我遇到有时简单的查询会返回一个空的数据集,而忽略表中的更新。我完全可以在GUI客户端中看到更新,甚至可以在其他python控制台中使用记录。我发现记录使用带有默认隔离级别“ REPEATABLE READ”的SQLAlchemy。可重复读忽略所有更新,直到事务结束,所以我看不到它们。

有什么办法可以改变呢?我可能需要关闭一个事务并打开一个新事务,或者更改此连接的隔离级别,但是我该怎么做?

python mysql sqlalchemy mysql-python python-records
1个回答
1
投票

现在我可以回答我的问题。

随着发布记录0.5.0(2016年11月),现在可以将参数传递给SQLAlchemy驱动程序。我使用的0.4.3中没有这种可能性。

因此,要在连接上设置隔离级别,请使用

db_url_mysql = 'mysql://user:[email protected]:3306/DB'
db = records.Database(db_url_mysql,isolation_level="READ_UNCOMMITTED")
© www.soinside.com 2019 - 2024. All rights reserved.