我有一个包含不同表的mnesia数据库.
我希望能够从不同的Linux终端访问表.
我有一个调用的函数add_record,这需要几个参数,说name和id.我想能够add_record打开node1和add record打开,node2但我想从不同的位置更新同一个表.
我读了几个来源,我发现的唯一一件事就是我应该使用net_adm:ping(node2).但不知何故,我无法从表中访问数据.
我的代码有点问题.我有一个包含汽车详细信息,名称,价格和数量的表格,因此我正在尝试创建一个buy用于购买特定汽车的功能.当用户购买5辆宝马汽车时,他们会打电话buy_car(bmw,5).在此之后,我想更新宝马汽车的新数量值.
我的尝试在下面,但我似乎无法解决它,我是Erlang的新手.
buy_car(X,Ncars) ->
F = fun() ->
%% ----first i find the number of car X available in the shop
[Xcars] = mnesia:read({car,X}),
Nc = Xcars#car.quantity,
Leftcars = Xcars#car{quantity = Nc - Ncars},
%% ---now we update the database
mnesia:write(Leftcars),
end,
mnesia:transaction(F).
Run Code Online (Sandbox Code Playgroud)
请帮助我如何编写从商店购买汽车的功能.
我设计了一个包含5个不同表的mnesia数据库.我的想法是模拟来自许多节点(计算机)的查询而不仅仅是一个,从终端我可以执行查询,但我只需要帮助我如何能够使我从多台计算机请求信息.我正在测试可伸缩性,并希望调查mnesia与其他数据库的性能.任何想法都将受到高度赞赏.
我想通过测量随着进程数量增加而做某事所花费的时间来测量我的数据库的性能.目的是绘制一个性能与过程数量的图表,任何人都知道如何?我是elrlang的初学者,请你好
erlang ×4
mnesia ×4
database ×3
distributed ×1
erlang-otp ×1
process ×1
scalability ×1
spawn ×1
transactions ×1