1
私はSequelを使用してMySqlおよびSQL Serverデータベースにアクセスしています。続行トランザクションはコミット中のエラーをカバーします
続編が、私はこのように取引を行うことができます:
@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
何かが私のクエリとうまくいかないのであれば、トランザクションはロールバックされますと、すべてがOKになります。
私のクエリはOKですが、コミットの瞬間に何かがデータベース上でうまくいかず、コミットが失敗した場合、Rubyコードはそれを検出して失敗するでしょうか?
関連:http://stackoverflow.com/questions/3960189/can-a-commit-statement-in-sql-ever-fail-how –