zoukankan      html  css  js  c++  java
  • mnesia怎样改动表结构

    mnesia创建的时候须要指定表record结构。假设定义的record结构改动了,就要更新数据的表结构。否则mnesia无法正常读取和写入数据。

    我们最開始是这样定义结构的

    -record(person, {name, age}).

    然后这样建表

    mnesia:create_table(person, [{disc_only_copies, nodes()}, {attributes, record_info(fields,person)}]).


    有一天我们改变了这个person结构

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

    我们还能够读出mnesia的数据,可是不能匹配到如今的person结构了

    > mnesia:dirty_read(person, lucy).
    [{person,lucy,1}]

    并且我们无法再写入数据

    > mnesia:dirty_write(person, #person{name = lily, age = 2, money = 0}).
    ** exception exit: {aborted,{bad_type,#person{name=lily,age=2, money=0}}}
         in function  mnesia:abort/1 (mnesia.erl, line 309)

    可是我们还想要使用这个数据库,能够这样改动数据库

    Fun = fun(X)  ->
      case X of
          {person, Name, Age} ->
               {person, Name, Age, 0};
           _ ->
               X
         end
    end,
    NewAttr = [name, age, money],
    mnesia:transform_table(person, Fun, NewAttr, person).


    參考:

    http://blog.csdn.net/mycwq/article/details/30101659

  • 相关阅读:
    表单元素input与文字对齐
    css hack较全
    闭合浮动
    字体
    css中z-index属性(包含各浏览器对此兼容问题)
    ie中使用滤镜实现css3的效果
    css实现提示框
    css3实现渐变效果
    css伪类
    .net core运用application/x-www-form-urlencoded发起post请求
  • 原文地址:https://www.cnblogs.com/llguanli/p/8606946.html
Copyright © 2011-2022 走看看