我有这个记录的表人
-record(person, {id, firstname, lastname, phone}).
我想更新这个表 Itry 的所有记录的电话
test()->
Newphone ="216",
Update=#person{phone=Newphone} ,
Fun = fun() ->
List = mnesia:match_object(Update),
lists:foreach(fun(X) ->
mnesia:write_object(X)
end, List)
end,
mnesia:transaction(Fun).
表person包含
12 alen dumas 97888888
15 franco mocci 55522225
13 ali othmani 44444449
我希望这张桌子变成这样:
12 alen dumas 216
15 franco mocci 216
13 ali othmani 216
我尝试:
test()->
Newphone ="216",
Update=X#person{phone=Newphone, _ = '_'}
Fun = fun() ->
List = mnesia:match_object(Update),
lists:foreach(fun(X) ->
mnesia:write(X)
end, List)
end,
mnesia:transaction(Fun).
但是使用这段代码我有这个错误:
Variable X is unbound
这与这条线有关:
Update=X#person{phone=Newphone, _ = '_'}
为了解决这个问题,我这样做:
test()->
Newphone ="216",
Update=#person{phone=Newphone, _ = '_'}
Fun = fun() ->
List = mnesia:match_object(Update),
lists:foreach(fun(X) ->
mnesia:write(X)
end, List)
end,
mnesia:transaction(Fun).
当我测试我有这个消息:
{atomic,ok}
但是当我查阅数据库时,我发现记录没有改变
我的代码中的困难是更改表 person 的所有记录
所以改变97888888和55522225和44444449
这个值应该变成216