如何从mnesia备份文件

时间:2015-09-24 19:46:11

标签: erlang mnesia ets

问题陈述

我有一个mnesia备份文件,并希望从中提取值。有3个表(简单来说),员工,技能和出勤率。因此,mnesia备份文件包含来自这三个表的所有数据。

Emplyee表是:

Empid (Key) 
Name
SkillId
AttendanceId

技能表是

SkillId (Key)
Skill Name

出勤表是

Code (Key)
AttendanceId
Percentage

我尝试了什么 我用过

ets:foldl(Fetch,OutputFile,Table)

Fetch:是一个单独的函数,用于遍历所获取的记录以引入所需的输出格式。

OutputFile:它写入此文件

表:表格的名称

期待

我是带有AttendanceId的gettig记录(因为这是关键),因为我只想获得代码。它显示员工信息和出勤ID。

帮帮我。

1 个答案:

答案 0 :(得分:1)

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添加一些东西以获得你想要的东西。