Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Sequel事务覆盖提交期间的错误_Sql_Ruby_Transactions_Sequel - Fatal编程技术网

Sql 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 因此,如果我

我正在使用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
因此,如果我的查询出现问题,事务将回滚,一切都会正常


如果我的查询没有问题,但在提交时数据库出现了问题,提交失败,那么Ruby代码会检测到这一点并失败吗?

取决于数据库适配器的实现方式。它可能会抛出异常,这与
Sequel::Rollback
不同。因此,
事务
方法不会捕获它,它会冒泡到您的代码中

但通常情况下,问题发生在事务内的操作期间,而不是在提交期间。通常情况下,您不必担心。

相关: