ets:to_dets/2
把内存里的 ETS 数据插入到磁盘上保存
用法:
to_dets(Tab, DetsTab) -> DetsTab
内部实现:
-spec to_dets(Tab, DetsTab) -> DetsTab when
Tab :: tab(),
DetsTab :: dets:tab_name().
to_dets(EtsTable, DetsTable) ->
case (catch dets:from_ets(DetsTable, EtsTable)) of
{error, Reason} ->
erlang:error(Reason, [EtsTable,DetsTable]);
{'EXIT', {Reason1, _Stack1}} ->
erlang:error(Reason1,[EtsTable,DetsTable]);
{'EXIT', EReason} ->
erlang:error(EReason,[EtsTable,DetsTable]);
ok ->
DetsTable;
Unexpected -> %% Dets bug?
erlang:error(Unexpected,[EtsTable,DetsTable])
end.
把一个已打开的 ETS 表 Tab 里的对象数据插入到一个已创建或已打开的磁盘 ETS(Disk Erlang Term Storage)表 Dets。表 Dets 里的数据在对象数据插入前会被清空。
Tab = test_ets_to_dets,
Ets = ets:new(Tab, [{keypos, 1}, ordered_set]),
[ ets:insert(Ets, {N}) || N