Ecto:在一个事务中增加变更集



我有以下代码:

MyModel.changeset(data)
|> Repo.insert()

我想在单个事务中向MyModel插入3次相同的行。Ecto有类似的东西吗:

repeat_times(3, MyModel.changeset(data))
|> Repo.insert()

你看到了吗https://hexdocs.pm/ecto/Ecto.Multi.html?它实际上操作多个功能,并在单个数据库事务中执行这些功能。

简短的回答是否定的,Ecto 3.x不会给你开箱即用的东西。。。

如果您正在寻找insert_all类型的操作,您是否已签出Repo.insert_aall?这是我能想到的最接近的函数,可能会给你你想要的东西。你必须编写自己的自定义函数或其他东西来手动构建repeat"的列表;MyModel";记录。如果你想合并变更集,你必须再次创建自己的函数。

最新更新