gpt4 book ai didi

ruby-on-rails - ActiveRecord 是否已经将手动查询包装到事务中?

转载 作者:数据小太阳 更新时间:2023-10-29 07:15:18 27 4
gpt4 key购买 nike

我有一个像这样开始和结束交易的查询:

transaction = "BEGIN; UPDATE articles set x = 1 where id = 1; UPDATE articles set x = 2 where id = 2; END;"

ActiveRecord::Base.connection.execute(transaction)

我的问题:我什至需要 BEGIN 和 END 吗? ActiveRecord 是否已经将我的查询包装到事务中?

最佳答案

ActiveRecord provides the transaction method ,在 AR 类和实例上都可用,它将查询包装在给定的 block 中。它甚至支持嵌套事务。

您可以将代码重写为:

sql = <<-SQL
UPDATE articles set x = 1 where id = 1;
UPDATE articles set x = 2 where id = 2;
SQL

ActiveRecord::Base.transaction do
ActiveRecord::Base.connection.execute(sql)
end

关于ruby-on-rails - ActiveRecord 是否已经将手动查询包装到事务中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16159359/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com