在mnesia中创建复合键

时间:2015-02-12 06:40:29

标签: erlang ejabberd mnesia

如何在mnesia表中创建一个复合键(两个属性组合的键)。据我所知,我们用来创建mnesia表的记录中的第一个元素是主键。请用简单示例表示< / p>

2 个答案:

答案 0 :(得分:2)

例如,使用此记录时

-record(cuser, {id,login_id,email}).

创建mnesia表,然后主键为id,但是当您将此重新编码更改为:

-record(cuser, {{id,login_id},email}).

然后主键是{id,login_id}

您可以使用 元组 作为主键。

答案 1 :(得分:0)

@ blackmamba的答案在OTP 18中对我不起作用。我收到了bad record field

但是,从阅读http://osdir.com/ml/erlang-questions-programming/1999-10/msg00069.html开始,我发现以下情况有效:

-record(state, {idkey, email}).
-record(idkey, {id,login_id}).