【问题标题】:How to extract data from mnesia backup file如何从 mnesia 备份文件中提取数据
【发布时间】:2015-12-22 13:10:27
【问题描述】:

问题陈述

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

员工表是:

Empid (Key) 
Name
SkillId
AttendanceId

技能表是

SkillId (Key)
Skill Name

考勤表是

Code (Key)
AttendanceId
Percentage

我尝试过的 我用过

ets:foldl(Fetch,OutputFile,Table)

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

OutputFile : 它写入这个文件

表:表的名称

期待

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

帮帮我。

【问题讨论】:

  • 您的文件是如何获得的?如果使用mnesia:backup,则应使用mnesia:restore,或mnesia:traverse_backup
  • 我没有恢复到另一个 mnesia 数据库。相反,我需要从备份中提取一些字段到文件中。

标签: erlang mnesia ets


【解决方案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 中添加一些东西以获得你想要的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 2011-04-12
    • 2010-09-09
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    相关资源
    最近更新 更多