この記録を持つテーブルパーソンがいます
-record(person, {id, firstname, lastname, phone}).
このテーブルのすべてのレコードの電話を更新したいItrywith
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).
テーブルパーソンには
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}
しかし、データベースを調べると、レコードが変更されていないことがわかりました
私のコードの難しさは、テーブルの人のすべてのレコードを変更することです
したがって、 97888888と55522225と44444449を変更します
この値は216になるはずです