问题陈述
我有一个 mnesia 备份文件,想从中提取值。有 3 个表(为简单起见),Employee、Skills 和 attendance。因此 mnesia 备份文件包含这三个表中的所有数据。
员工表是:
Empid (Key)
Name
SkillId
AttendanceId
技能表是
SkillId (Key)
Skill Name
考勤表是
Code (Key)
AttendanceId
Percentage
我尝试过的 我用过
ets:foldl(Fetch,OutputFile,Table)
获取:是一个单独的函数,用于遍历获取的记录以产生所需的输出格式。
OutputFile : 它写入这个文件
表:表名
期待
我正在获取带有 AttendanceId 的记录(因为这是关键),因为我只想获取代码。它显示员工信息和考勤 ID。
帮帮我。
最佳答案
mnesia 用户指南中描述了备份和恢复 here .
要读取现有备份而不还原它,请使用 mnesia:traverse_backup/4 .
1> mnesia:backup(backup_file).
ok
2> Fun = fun(BackupItems, Acc) -> {[], []} end.
#Fun<erl_eval.12.90072148>
3> mnesia:traverse_backup(backup_file, mnesia_backup, [], read_only, Fun, []).
{ok,[]}
现在向 Fun 添加一些东西以获得你想要的。
关于erlang - 如何从 mnesia 备份文件中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32769690/