事务

时间:2015-09-21 15:46:06

标签: mysql ruby-on-rails ruby postgresql activerecord

对于PostgreSQL或MySQL的Ruby on Rails中的事务的默认隔离级别是什么?

active_record/connection_adapters/abstract/database_statements.rb#L173

1 个答案:

答案 0 :(得分:8)

文档说明:

  # If your database supports setting the isolation level for a transaction, you can set
  # it like so:
  #
  #   Post.transaction(isolation: :serializable) do
  #     # ...
  #   end

代码是:

def transaction(requires_new: nil, isolation: nil, joinable: true)

默认值为nil,表示您正在使用的数据库的默认隔离级别。

MySQL的默认值是:repeatable_read。

Postgress的默认值是:read_committed。