首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在两个记忆体表之间传输数据

在两个记忆体表之间传输数据
EN

Stack Overflow用户
提问于 2013-02-19 00:49:20
回答 1查看 191关注 0票数 0

我有两张桌子,柜台和柜台

代码语言:javascript
复制
   -record(counter, {key, value}).
    -record(count, {key, value}).


    create() ->
        mnesia:create_schema([node()]),
        mnesia:start(),
        mnesia:create_table(counter, [{attributes, record_info(fields, counter)}, {disc_copies, [node()]}]),
        mnesia:create_table(count, [{attributes, record_info(fields, count)}, {disc_copies, [node()]}]),



    mnesia:stop().

但是当我尝试运行这个函数时

代码语言:javascript
复制
backup()->

    mnesia:transaction(fun() ->
  Records = mnesia:select(counter, [{'_', [], ['$_']}]),
  [ok = mnesia:write(count, Record, write) || Record <- Records]
end).

我有这个错误

代码语言:javascript
复制
2> model:backup().
{aborted,{bad_type,{counter,test,353}}}

当我使用你的代码时:

代码语言:javascript
复制
mnesia:create_table(count, [{record_name, counter}, {attributes, record_info(fields, counter)}, {disc_copies, [node()]}]).

当我尝试运行model:reset()时,它会删除表计数和表计数器的数据

我的目标只是删除计数器的数据

这是reset()的代码

代码语言:javascript
复制
reset() ->
    stop(),
    destroy(),
    create(),
    start(),

    {ok}.


destroy() ->
    mnesia:start(),
    mnesia:delete_table(counter),
    mnesia:delete_table(person),
    mnesia:stop(),
    mnesia:delete_schema([node()]).


create() ->
    mnesia:create_schema([node()]),
    mnesia:start(),
    mnesia:create_table(counter, [{attributes, record_info(fields, counter)}, {disc_copies, [node()]}]),
    mnesia:create_table(person, [{attributes, record_info(fields, person)}, {disc_copies, [node()]}]),
  mnesia:create_table(person_backup,[{disc_copies, [node()]},{attributes, record_info(fields, person)},
    {record_name, person}]),
    mnesia:stop().
EN

回答 1

Stack Overflow用户

发布于 2013-02-19 01:26:19

您正在尝试在计数表中写入计数器记录,这会导致错误。有两种方法可以做到这一点。

  1. 使用名为counter的单个记录,并在for count表中也用作mnesia:create_table( count,[{record_name,counter},{attributes,record_info(fields,counter)},{disc_copies,node()}])。
  2. 如果上面没有其他字段,则可以在写入之前将必需的元素从计数器记录复制到count记录。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14941240

复制
相关文章

相似问题

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