Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 在单个事务中插入多个变更集_Elixir_Ecto - Fatal编程技术网

Elixir 在单个事务中插入多个变更集

Elixir 在单个事务中插入多个变更集,elixir,ecto,Elixir,Ecto,我有一张桥牌桌: schema "rooms_units" do field(:date_from, :utc_datetime) field(:date_to, :utc_datetime) belongs_to(:room, App.Room, primary_key: true) belongs_to(:unit, App..Unit) end 我有来自我的端点的映射列表,我为每个映射创建了一个变更集列表 [ #Ecto.Changeset< action: n

我有一张桥牌桌:

schema "rooms_units" do
  field(:date_from, :utc_datetime)
  field(:date_to, :utc_datetime)
  belongs_to(:room, App.Room, primary_key: true)
  belongs_to(:unit, App..Unit)
end
我有来自我的端点的映射列表,我为每个映射创建了一个变更集列表

[

#Ecto.Changeset<
 action: nil,
changes: %{
  date_from: #DateTime<2016-11-03 13:23:00Z>,
  date_to: #DateTime<2016-11-03 13:23:00Z>,
  room_id: 255,
  unit_id: 296
},
errors: [],
data: #App.RoomUnit<>,
valid?: true

#Ecto.Changeset<
action: nil,
changes: %{
  date_from: #DateTime<2016-11-03 13:23:00Z>,
  date_to: #DateTime<2016-11-03 13:23:00Z>,
  room_id: 256,
  unit_id: 296
},
errors: [],
data: #App.RoomUnit<>,
valid?: true
>
]
[
#外部变更集<
行动:无,
变化:%{
日期_自:#日期时间,
日期_至:#日期时间,
房间号:255,
编号:296
},
错误:[],
数据:#App.RoomUnit,
有效?:正确
#外部变更集<
行动:无,
变化:%{
日期_自:#日期时间,
日期_至:#日期时间,
房间号:256,
编号:296
},
错误:[],
数据:#App.RoomUnit,
有效?:正确
>
]
我想在单个事务中将其插入
rooms\u units
表中

我尝试了
exto.multi.insert\u all
。但它接受的是映射列表,而不是变更集。有没有其他功能可以帮助我解决这个问题

谢谢使用


但它将分别进行插入:
begin[]01:55:34.104[debug]QUERY OK db=0.7ms插入“表”。。。01:55:34.104[调试]查询OK db=0.3ms插入“表”。。。01:55:34.106[debug]QUERY OK db=1.2ms commit[]
是否有任何方法可以在一次插入中完成?也可以在这样一次批量插入后返回
inserted_?并执行批量插入,但不会更新计算字段,如
inserted\u at
updated\u at
,这意味着应该手动准备和填充这些字段。
MyRepo.transaction(fn ->
  Enum.each(changesets, &MyRepo.update!(&1, []))
end)