使用Ecto / Elixir锁定行“ FOR UPDATE OF”特定表

时间:2019-03-12 19:22:05

标签: elixir ecto

我想使用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")

使用别名看起来不是正确的别名。还有其他方法可以使其正常工作吗?

0 个答案:

没有答案