Sql Sequel事务覆盖提交期间的错误
我正在使用Sequel访问MySql和SQL Server数据库 Sequel允许我执行如下事务:Sql Sequel事务覆盖提交期间的错误,sql,ruby,transactions,sequel,Sql,Ruby,Transactions,Sequel,我正在使用Sequel访问MySql和SQL Server数据库 Sequel允许我执行如下事务: @client = Sequel.connect(config) @client.transaction do @client.execute("DELETE FROM UserGroup WHERE UserId = #{user_id}") @client.execute("DELETE FROM User WHERE Id = #{user_id}") end 因此,如果我
@client = Sequel.connect(config)
@client.transaction do
@client.execute("DELETE FROM UserGroup WHERE UserId = #{user_id}")
@client.execute("DELETE FROM User WHERE Id = #{user_id}")
end
因此,如果我的查询出现问题,事务将回滚,一切都会正常
如果我的查询没有问题,但在提交时数据库出现了问题,提交失败,那么Ruby代码会检测到这一点并失败吗?取决于数据库适配器的实现方式。它可能会抛出异常,这与
Sequel::Rollback
不同。因此,事务
方法不会捕获它,它会冒泡到您的代码中
但通常情况下,问题发生在事务内的操作期间,而不是在提交期间。通常情况下,您不必担心。相关: