如何在Mnesia表中添加列

时间:2018-11-07 07:01:27

标签: erlang mnesia erl

我正在尝试将新列添加到现有的mnesia表中。为此,我使用以下代码。

test()->

Transformer =
  fun(X)->
      #users{name = X#user.name,
           age = X#user.age,
           email = X#user.email,
          year = 1990}
end,
{atomic, ok} = mnesia:transform_table(user, Transformer,record_info(fields, users),users).

我有两条记录

-record(user,{name,age,email}).
-record(users,{name,age,email,year}).

我的问题是,当我从user表中获取值时,它是

{atomic,[{users,sachith,28,sachith@so,1990}]}

为什么我从users表中检索数据时为什么得到user记录名?

1 个答案:

答案 0 :(得分:2)

表名和记录名不必相同。您从一个名为user的表开始,该表保存着user个记录,然后将所有user个记录转换为users个记录。因此,当您从表中读取数据时,它将返回users条记录,因为这就是该表现在包含的内容。