Erlang 如何从mnesia备份文件中提取数据

Erlang 如何从mnesia备份文件中提取数据,erlang,mnesia,ets,Erlang,Mnesia,Ets,问题陈述 我有一个mnesia备份文件,希望从中提取值。这里有3个表(为了简单起见)、员工表、技能表和考勤表。因此,mnesia备份文件包含这三个表中的所有数据 雇员表为: Empid (Key) Name SkillId AttendanceId 技能表是 SkillId (Key) Skill Name Code (Key) AttendanceId Percentage 考勤表是 SkillId (Key) Skill Name Code (Key) AttendanceId P

问题陈述

我有一个mnesia备份文件,希望从中提取值。这里有3个表(为了简单起见)、员工表、技能表和考勤表。因此,mnesia备份文件包含这三个表中的所有数据

雇员表为:

Empid (Key) 
Name
SkillId
AttendanceId
技能表是

SkillId (Key)
Skill Name
Code (Key)
AttendanceId
Percentage
考勤表是

SkillId (Key)
Skill Name
Code (Key)
AttendanceId
Percentage
我尝试过的 我用过

ets:foldl(获取、输出文件、表格)

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

OutputFile:它写入此文件

表:表的名称

期待

我用AttendanceId获取记录(因为这是关键),因为我只想获取代码。它显示员工信息和考勤id


帮助我。

备份和恢复在《mnesia用户指南》中有介绍

要读取现有备份而不还原它,请使用

1>mnesia:backup(备份文件)。
好啊
2> Fun=Fun(BackupItems,Acc)->{[],[]}结束。
#乐趣
3> mnesia:traverse_backup(备份文件,mnesia_backup,[],只读,Fun,[])。
{好的,[]}

现在添加一些有趣的内容,以获得您想要的内容。

您是如何获得文件的?如果使用
mnesia:backup
,则应使用
mnesia:restore
,或
mnesia:traverse\u backup
我不会还原回另一个mnesia数据库。相反,我需要从备份文件中提取一些字段。