我正在尝试使用新属性和与现有列交互的数据库调用来更新现有模型。类似于UPDATE companies SET a = 1, b = jsonb_set(b, '{key}', CURRENT_TIMESTAMP(), true)
SQL 中的东西。
我如何使用 Ecto 和片段来实现这一目标?
这是我的尝试,但它失败了,因为它fragment
是一个宏:
enhanced =
%{ attrs | b: fragment(
"jsonb_set(b, ?, CURRENT_TIMESTAMP(), true)",
"{#{Atom.to_string(key)}}"
)}
result =
company
|> Company.changeset(enhanced)
|> Repo.update()
Run Code Online (Sandbox Code Playgroud)