提交 0bb32588 编写于 作者: P Pratik Naik

Fix pessimistic locking examples

上级 9cd708b2
...@@ -571,13 +571,13 @@ end ...@@ -571,13 +571,13 @@ end
h5. Pessimistic Locking h5. Pessimistic Locking
Pessimistic locking uses a locking mechanism provided by the underlying database. Passing +:lock => true+ to +Model.find+ obtains an exclusive lock on the selected rows. +Model.find+ using +:lock+ are usually wrapped inside a transaction for preventing deadlock conditions. Pessimistic locking uses a locking mechanism provided by the underlying database. Using +lock+ when building a relation obtains an exclusive lock on the selected rows. Relations using +lock+ are usually wrapped inside a transaction for preventing deadlock conditions.
For example: For example:
<ruby> <ruby>
Item.transaction do Item.transaction do
i = Item.first(:lock => true) i = Item.lock.first
i.name = 'Jones' i.name = 'Jones'
i.save i.save
end end
...@@ -592,11 +592,11 @@ Item Update (0.4ms) UPDATE `items` SET `updated_at` = '2009-02-07 18:05:56', ` ...@@ -592,11 +592,11 @@ Item Update (0.4ms) UPDATE `items` SET `updated_at` = '2009-02-07 18:05:56', `
SQL (0.8ms) COMMIT SQL (0.8ms) COMMIT
</sql> </sql>
You can also pass raw SQL to the +:lock+ option to allow different types of locks. For example, MySQL has an expression called +LOCK IN SHARE MODE+ where you can lock a record but still allow other queries to read it. To specify this expression just pass it in as the lock option: You can also pass raw SQL to the +lock+ method for allowing different types of locks. For example, MySQL has an expression called +LOCK IN SHARE MODE+ where you can lock a record but still allow other queries to read it. To specify this expression just pass it in as the lock option:
<ruby> <ruby>
Item.transaction do Item.transaction do
i = Item.find(1, :lock => "LOCK IN SHARE MODE") i = Item.lock("LOCK IN SHARE MODE").find(1)
i.increment!(:views) i.increment!(:views)
end end
</ruby> </ruby>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册