【发布时间】:2017-03-07 11:48:16
【问题描述】:
我正在尝试使用Kenneth Reitz's records library 构建一些自动测试脚本。我需要在这里和那里检查 MySQL 数据库的更新。
db_url_mysql = 'mysql://user:pass@mysql.localhost:3306/DB'
db = records.Database(db_url_mysql)
rows = db.query("SELECT * FROM Users").all()
但是,我遇到过有时简单查询会返回空数据集,而忽略表中的更新。我完全可以在 GUI 客户端中看到更新,甚至可以在替代 python 控制台中使用记录。 我发现记录使用具有默认隔离级别“REPEATABLE READ”的 SQLAlchemy。可重复读取会忽略所有更新,直到事务结束,所以我看不到它们。
有什么办法可以改变吗?我可能需要关闭一个事务并打开一个新事务,或者可能需要更改此连接的隔离级别,但我该怎么做呢?
【问题讨论】:
-
我仍然找不到在不删除记录库并转移到 SQLAlchemy 的情况下更改此设置的方法。但是,我找到了一种解决方法。如果您调用
db.query('SET AUTOCOMMIT=1'),下一个查询将在调用后立即提交,有效地允许您在不缓存的情况下检查您的数据库。
标签: python mysql sqlalchemy mysql-python python-records