首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mnesia创建表错误

Mnesia创建表错误
EN

Stack Overflow用户
提问于 2017-06-03 19:25:39
回答 1查看 255关注 0票数 1

使用下面的方法,我尝试创建了一个表,

代码语言:javascript
运行
复制
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.

我使用的记录如下:

代码语言:javascript
运行
复制
-record(bill_cdr_file_counter, {key,value}).

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

代码语言:javascript
运行
复制
{aborted,{bad_type,bill_cdr_file_counter,{disc_copies,log@mbsmsc1}}}
EN

回答 1

Stack Overflow用户

发布于 2017-06-03 22:02:22

你的代码对我来说工作得很好。第一次运行它时,我得到了返回值:

代码语言:javascript
运行
复制
{atomic,ok}

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

代码语言:javascript
运行
复制
{aborted,{already_exists,bill_cdr_file_counter}}

当我这样做的时候:

代码语言:javascript
运行
复制
4> observer:start() 

然后单击Table View选项卡,然后在菜单栏中选择View>Mnesia Tables,我看到列出了bill_cdr_file_counter表。我使用的是Erlang 19.2。您使用的是哪个版本的Erlang?

我也试过了:

代码语言:javascript
运行
复制
3> node().
nonode@nohost

或者,如果我像这样开始erl:

代码语言:javascript
运行
复制
$ erl -sname gandalf

1> node().
gandalf@MyMBP

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

代码语言:javascript
运行
复制
log@mbsmsc1

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44343402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档