Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南。下面的内容将着重说明 Mnesia 数据库如何实现SQL查询,实现select / insert / update / where / order by / join / limit / delete等SQL操作。
示例中表结构的定义:
%% 账号表结构
-record( y_account,{ id, account, password }).
%% 资料表结构
-record( y_info, { id, nickname, birthday, sex }).
1、Create Table / Delete Table 操作
%%===============================================
%% create table y_account ( id int, account varchar(50),
%% password varchar(50), primary key(id)) ;
%%===============================================
%% 使用 mnesia:create_table
mnesia:create_table( y_account,[{attributes, record_info(fields, y_account)} ,
{type,set}, {disc_copies, [node()]} ]).
%%===============================================
%% drop table y_account;
%%===============================================
%% 使用 mnesia:delete_table
mnesia:delete_table(y_account) .
注:参数意义可以看文档,{type,set} 表示id作为主键,不允许id重复,如果改为 {type,bag},id可以重复,但整条记录不能重复
2、Select 查询
查询全部记录
%%===============================================
%% select * from y_account