使用以下方法我尝试创建一个表
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}}}
答案 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
这是我在你的代码和我运行的代码之间看到的唯一区别。