我想使用lock
获得一个FOR UPDATE OF table_name
。与FOR UPDATE
相比,FOR UPDATE OF
仅锁定指定表中的行,而联接的行则不会被阻塞。但是,当我尝试使用以下代码片段使用Ecto进行操作时,就会失败。
query =
Call
|> join_other_tables() # custom methods
|> Query.lock("FOR UPDATE OF calls")
原因是Ecto使用calls
的别名,例如c0
,这意味着我还必须在锁表达式中使用别名才能使它起作用。
query =
Call
|> join_other_tables() # custom methods
|> Query.lock("FOR UPDATE OF c0")
使用别名看起来不是正确的别名。还有其他方法可以使其正常工作吗?