【发布时间】:2016-04-19 12:31:24
【问题描述】:
我在 Rails 3.2 + mySQL 应用程序中有以下代码:
ActiveRecord::Base.connection.execute("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED")
ActiveRecord::Base.transaction do
@book = ActiveRecord::Base.connection.execute("select * from books limit 1")
end
据我了解,第一条语句将导致同一会话中的下一个事务处于“READ UNCOMMITTED”隔离状态,然后隔离将恢复为默认值。
我的问题是:我能否确定事务块将始终在同一个会话中执行?另外,我能否确定在第一条语句和第二条语句之间的同一会话中不会发生其他事务?
我尝试在 Google 上搜索这个主题,但由于我是 Rails 新手,所以我找不到任何可以让我清楚这一点的解释。任何帮助将不胜感激!
谢谢!
【问题讨论】:
标签: mysql ruby-on-rails activerecord rails-activerecord transaction-isolation