zoukankan      html  css  js  c++  java
  • mnesia数据库学习笔记一

    mnesia数据库学习笔记

    1、基本使用流程

    1>mnesia:create_schema([node]).    %创建方案的本地节点上。

    2>mnesia:start(). %启动数据库

    3>mnesia:create_table(funky,[]).%创建表
    4>mnesia:info(). %查看数据库信息

     在启动erlang时,erl -mnesia dir '"/dir"' 用于指定Mnesia数据存储位置。

    2、定义表结构,创建表

    % company.hrl

    -record(employee, {emp_no, name, salary, sex, phone, room_no}).

    % createtbl.erl

    -include("company.hrl")

    init() ->

      mnesia:create_table(employee, [{attributes, record_info(fields.employree)}]).

      %create_table(表名, [类型,字段])。

    表中有1对1的set类型,和1对多的bag类型。

    3、事务

    mnesia:tranaction(Fun).

    事务只需要一个函数参数。
    4、写查询

    raise(Eno,Raise) ->

      F = fun() ->

          [E] =mnesia:read(employee, eno, write),  %读数据并带上写锁

          Salary = E#employee.salary + Raise,    %得到加薪后数据

          New = E#employee{salary=Salary),     %生成要薪后记录 

          mnesia:write(New)              %更新薪酬

      end,

      mnesia:transaction(F).                %执行事务

    5、Mnesia函数

    提取女性职员

    mnesia:select(employee, [{#employee{sex = female, name='$1', _='_'},[],['$1']}]).

    select 必须运行在类似事务的活动中.

    6、使用 QLC

    QLC通常比直接使用mnesia函数 代价更高 。但是提供了更好的语法

      Q = qlc:q([E#employee.name || E <- mnesia:table(employee), E#employee.sex == female]),
      qlc:e(Q)

    [读作"创建list"

    ||读作"例如"

    <-读作"取出"

  • 相关阅读:
    在IE地址栏输入JS的有趣效果
    min-height for IE6
    针对主流浏览器的CSS-HACK写法及IE常用条件注释
    spring mvc从前台往后台传递参数的三种方式
    SQL语句优化
    SpringCloud分布式开发理解
    Spring的三大核心思想
    单例模式中的懒汉模式及饿汉模式
    SpringMVC工作原理
    堆和栈的区别及堆区和栈区的区别
  • 原文地址:https://www.cnblogs.com/freebird92/p/2295473.html
Copyright © 2011-2022 走看看