erlang mnesia 常用使用技巧
2014-12-23 23:12
141 查看
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).
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).
相关文章推荐
- DataGrid常用的使用技巧
- 常用网络命令使用技巧详解续编1
- clistctrl 常用使用技巧
- JavaScript使用技巧精萃 常用方法收藏
- JavaScript使用技巧精萃 常用方法
- zt: SQL*PLUS常用命令和Decode()函数使用技巧
- 路由表+常用网络命令+SSL的WEB安全访问+常用网络命令使用技巧
- 常用网页使用js技巧收集续一
- 电脑使用常用技巧54条
- SQL*Plus中一些常用的命令及使用技巧
- VI指令及其使用技巧(汇总,仅最常用的)
- Linux常用命令使用技巧(2)
- 常用网页使用js技巧收集
- UE常用使用技巧
- 常用网页使用js技巧收集231个
- 常用网络命令使用技巧详解续编3
- 常用的XHTML标签的使用技巧介绍
- Windows操作系统常用网络命令使用技巧详解
- C# 开发和使用中的23个技巧(常用)
- 总结自己常用的UltraEdit使用技巧