Mnesia创建表错误

时间:2017-06-03 11:25:39

标签: erlang mnesia

使用以下方法我尝试创建一个表

mnesia_init() -> 
mnesia:create_schema([node()]),
case mnesia:start() of
    ok ->
        try
            mnesia:table_info(type, bill_cdr_file_counter)
        catch 
            exit:_ ->
                mnesia:create_table(bill_cdr_file_counter,[{attributes,[key,value]},
                                                           {disc_copies,[node()]}])
        end;
    {error, Reason} ->
        error_logger:error_report(["Mnesia start error: ", Reason]),
        {error, Reason}
end.

我使用的记录如下,

-record(bill_cdr_file_counter, {key,value}).

但作为回应我得到了这个,

{aborted,{bad_type,bill_cdr_file_counter,{disc_copies,log@mbsmsc1}}}

1 个答案:

答案 0 :(得分:1)

您的代码适用于我。我第一次运行它时得到返回值:

{atomic,ok}

第二次运行它时,我得到了返回值:

{aborted,{already_exists,bill_cdr_file_counter}}

当我这样做时:

4> observer:start() 

然后点击Table View标签,然后在菜单栏中选择View>Mnesia Tables,我会看到列出的bill_cdr_file_counter表格。我正在使用Erlang 19.2。您使用的是什么版本的Erlang?

我也尝试过:

3> node().
nonode@nohost

或者,如果我这样开始:

$ erl -sname gandalf

1> node().
gandalf@MyMBP

您的错误消息显示node()正在返回:

log@mbsmsc1

这是我在你的代码和我运行的代码之间看到的唯一区别。