erlang mnesia 常用使用技巧

本文介绍了Erlang的Mnesia数据库管理系统的一些常用操作技巧,包括如何判断表是否存在、检查数据库是否创建以及如何高效地遍历Mnesia表。对于需要使用Mnesia的Erlang开发者来说,这些技巧将有助于更好地理解和运用这一分布式数据库。
摘要由CSDN通过智能技术生成

Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南。文章收集一些常用 mnesia 使用技巧。


mnesia判断表是否存在

%% 确保已经 mnesia:start().
lists:member(Tab,  mnesia:system_info(tables)).


mnesia检查数据库是否创建

case mnesia:system_info(use_dir) of
	true ->
		alread_created;
	_ ->
		mnesia:create_schema([node()])
end

改变mnesia表类型

mnesia:change_table_copy_type(person, node(), disc_copies)


遍历mnesia表(效率较高)

lists:foldl(
	fun(Key, Acc) ->
		[Result] = mnesia:dirty_read(Tab, Key),
		[Result|Acc]
	end, [], mnesia:dirty_all_keys(Tab)).


修改mnesia表结构

%% -record(person, {name, age}).
%% 改成 
%% -record(person, {name, age, money}).

Fun = fun({person, Name, Age})  ->
           {person, Name, Age, 0};
       (X) ->
           X
     end,
Attr = record_info(fields, person), %%也就是 [name, age, money]
mnesia:transform_table(db_person, Fun, Attr, person).

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值