为什么Rails不将select查询包装到begin commit

时间:2016-09-01 05:53:37

标签: ruby-on-rails postgresql

看起来Rails只使用begin和commit来创建和更新查询,我的一些select查询仍保留在Postgres处于空闲状态,那么为什么Rails还没有将select包括在begin和commit中呢?

1 个答案:

答案 0 :(得分:3)

因为事务(包含在begin / commit / rollback中的sql)只有在更改数据时才有意义,因此确保进程是原子的。例如,为了确保如果您从一个帐户中提取资金,他们将被记入另一个帐户。

选择查询无法更改数据,因此此处的交易毫无意义。