我是数据库应用程序的新手,我试图使用Datamapper创建一个Ruby应用程序。了解数据库中的事务
我偶然发现这段代码,我不明白:
transaction do |txn|
link = Link.new(:identifier => custom)
link.url = Url.create(:original => original)
link.save
end
我有几个问题:究竟是什么交易?为什么这是首选,而不是只是做:
link = Link.new(:identifier => custom)
link.url = Url.create(:original => original)
link.save
当我应该考虑使用交易?什么是最好的用例?有没有可用的在线资源,我可以阅读有关这些概念的更多信息。
谢谢!
+1有很好的解释。你能否澄清如果使用交易在同样的情况下会发生什么?事务是否锁定一行,以便在事务处理过程中用户B根本无法访问对象O?我只是好奇... – 2012-04-01 15:18:26
有一些实现,但基本上是 - 行/表/数据库被锁定,直到操作完成。实际上有几个级别的隔离 - http://en.wikipedia.org/wiki/Isolation_(database_systems) – 2012-04-01 15:20:33
谢谢你,阅读你的维基链接和学习... – 2012-04-01 15:29:19