module Clear::SQL::Query::Lock
Direct including types
Defined in:
clear/sql/query/lock.crInstance Method Summary
-
#clear_lock
remove lock directive.
-
#with_lock(str : String = "FOR UPDATE")
You can use lock using
#with_lock
method on query collection:
Instance Method Detail
def with_lock(str : String = "FOR UPDATE")
#
You can use lock using #with_lock
method on query collection:
Clear::SQL.transaction do
# SELECT * FROM users WHERE organization = 'Crystal Lang' FOR UPDATE
User.where(organization: "Crystal Lang").with_lock.each do |user|
# Do something with your users
end
end
#with_lock
offers optional parameters \(default: "FOR UPDATE"
\), to setup the lock options you want \(ex: #with_lock("FOR UPDATE SKIP LOCKED")
\)
See PostgreSQL deep explanation about locking here.
{% hint style="warning" %} Locking works only in transaction. {% endhint %}