我尝试了这个代码片段:
print_next(Current) ->
case mnesia:dirty_next(muppet, Current) of
'$end_of_table' ->
io:format("~n", []),
ok;
Next ->
[Muppet] = mnesia:dirty_read({muppet, Next}),
io:format("~p~n", [Muppet]),
print_next(Next),
ok
end.
print() ->
case mnesia:dirty_first(muppet) of
'$end_of_table' ->
ok;
First ->
[Muppet] = mnesia:dirty_read({muppet, First}),
io:format("~p~n", [Muppet]),
print_next(First),
ok
end.
但时间那么长。我也可以使用dirty_all_keys
然后遍历键列表,但我想知道是否有更好的方法来打印 Mnesia 表内容。
如果您只是想要一种快速而肮脏的方式在 shell 中打印 Mnesia 表的内容,并且您的表不是类型disc_only_copies
,那么您可以利用 Mnesia 将其数据存储在 ETS 表中的事实并运行:
ets:tab2list(my_table).
或者,如果您认为 shell 截断了太多数据:
rp(ets:tab2list(my_table)).
当然,不推荐用于“真实”代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)