在erlang中清除表

在erlang中清除表,erlang,mnesia,Erlang,Mnesia,我有一个表用户 -record(person, {id, firstname, lastname}). 此表包含以下值: 1 francoi mocci 2 test tes 我想清除此表中的数据 我在erlang中找不到从用户表中清除数据的语法 -record(person, {id, firstname, lastname}). 我找到了删除表的函数 mnesia:delete(..) 清除表格(选项卡) 删除表选项卡

我有一个表用户

  -record(person, {id, firstname, lastname}).
此表包含以下值:

    1  francoi     mocci     
    2  test        tes  
我想清除此表中的数据

我在erlang中找不到从用户表中清除数据的语法

  -record(person, {id, firstname, lastname}).
我找到了删除表的函数

mnesia:delete(..)

清除表格(选项卡)

删除表选项卡中的所有条目


要仅对某些记录执行此操作,可以找到表中的所有键,然后为要删除的每个键调用delete函数。我在shell中尝试这个:

1> mnesia:create_schema([node()]).
ok
2> application:set_env(mnesia, dir, ".").
ok
3> application:start(mnesia).
ok
4> application:which_applications().
[{mnesia,"MNESIA  CXC 138 12","4.7.1"},
 {stdlib,"ERTS  CXC 138 10","1.18.2"},
 {kernel,"ERTS  CXC 138 10","2.15.2"}]
5> rd(person, {id, firstname, lastname}).
person
6> mnesia:create_table(person,[{attributes, record_info(fields,person)},{ram_copies,[node()]}]).                       
{atomic,ok}
7> Add=fun(I,N,L) -> F = fun() -> mnesia:write(#person{id=I,firstname=N,lastname=L}) end, mnesia:activity(transaction,F) end.
#Fun<erl_eval.18.82930912>
8> Add(1,"Toto","Ralf").
ok
9> Add(2,"Titi","Ben"). 
ok
10> mnesia:activity(transaction,fun() -> mnesia:all_keys(person) end).
[1,2]
11> Add(3,"Tutu","Joe").                                              
ok
12> L = mnesia:activity(transaction,fun() -> mnesia:all_keys(person) end).
[1,2,3]
13> mnesia:dirty_read(person,3).
[#person{id = 3,firstname = "Tutu",lastname = "Joe"}]
14> Del=fun(X) -> F=fun() -> mnesia:delete({person,X}) end, mnesia:activity(transaction,F) end.                               
#Fun<erl_eval.6.82930912>
15> [Del(X) || X <- L, X < 3].
[ok,ok]
16> mnesia:activity(transaction,fun() -> mnesia:all_keys(person) end).    
[3]
17> 
1>mnesia:create_schema([node()])。
好啊
2> 应用:set_env(mnesia,dir,“.”)。
好啊
3> 应用:启动(mnesia)。
好啊
4> 应用程序:哪些应用程序()。
[{mnesia,“mnesia CXC 138 12”,“4.7.1”},
{stdlib,“ERTS CXC 138 10”,“1.18.2”},
{内核,“ERTS CXC 138 10”,“2.15.2”}]
5> rd(person,{id,firstname,lastname})。
人
6> mnesia:create_表(person,[{attributes,record_info(fields,person)},{ram_copies,[node()]}])。
{原子,好的}
7> Add=fun(I,N,L)->F=fun()->mnesia:write(#person{id=I,firstname=N,lastname=L})end,mnesia:activity(transaction,F)end。
#乐趣
8> 添加(1,“Toto”、“Ralf”)。
好啊
9> 添加(2,“提提”、“本”)。
好啊
10> mnesia:activity(事务,乐趣()->mnesia:all_key(person)end)。
[1,2]
11> 添加(3,“图图”、“乔”)。
好啊
12> L=mnesia:activity(transaction,fun()->mnesia:all_key(person)end)。
[1,2,3]
13> 记忆:肮脏的阅读(人,3)。
[#person{id=3,firstname=“tututu”,lastname=“Joe”}]
14> Del=fun(X)->F=fun()->mnesia:delete({person,X})end,mnesia:activity(transaction,F)end。
#乐趣
15> [Del(X)| | X记忆:活动(事务,乐趣()->记忆:所有键(人)结束)。
[3]
17>