erlang学习: Mnesia Erlang数据库2

ops/2025/1/15 20:49:17/

Mnesia数据库增加与查询学习

erlang">-module(test_mnesia).-record(shop, {item, quantity, cost}).
-record(cost, {name, price}).
-record(design, {info, plan}).
%% API
-export([insert/3,select/1,start/0]).
start() ->mnesia:start().insert(Name, Quantity, Cost) ->Row = #shop{item = Name, quantity = Quantity, cost = Cost},F = fun() ->mnesia:write(Row)end,mnesia:transaction(F).select() ->qlc:q([X || X <- mnesia:table(shop)]).

能够插入但是不能查询
请添加图片描述

需要对do函数进行实现,才能展示出数据库中的数据,do函数在书上20.4.3有相应实现

erlang">-module(test_mnesia).
-include_lib("stdlib/include/qlc.hrl").-record(shop, {item, quantity, cost}).
%% API
-export([insert/3,select/0,start/0,do_this_once/0]).
start() ->mnesia:start().insert(Name, Quantity, Cost) ->Row = #shop{item = Name, quantity = Quantity, cost = Cost},io:format("inserting ~p~n", [Row]),F = fun() ->mnesia:write(Row)end,mnesia:transaction(F).select() ->do(qlc:q([X || X <- mnesia:table(shop)])).do(Q) ->F  = fun() ->qlc:e(Q)end,{atomic,Val} = mnesia:transaction(F),Val.

实现do函数后的代码运行截图
请添加图片描述


http://www.ppmy.cn/ops/111247.html

相关文章

QT 中使用QXlsx 读写文件

PC 工具中需要操作xlsx格式的数据&#xff0c;前面使用的是QAxObject&#xff0c;需要一些设置&#xff0c;还要安装office的控件或者wps的控件&#xff0c;在一些电脑上面有的时候还会有异常&#xff0c;后面发现一个好像的开源库QXls&#xff0c;发现读写的速度比以前快&…

在Flask中实现跨域请求(CORS)

在Flask中实现跨域请求&#xff08;CORS&#xff0c;Cross-Origin Resource Sharing&#xff09;主要涉及到对Flask应用的配置&#xff0c;以允许来自不同源的请求访问服务器上的资源。以下是在Flask中实现CORS的详细步骤和方法&#xff1a; 一、理解CORS CORS是一种机制&…

Vue与React的Diff算法

虚拟DOM 定义 虚拟DOM是一种用于在前端开发中模拟真实DOM的技术。它是一种抽象的数据结构&#xff08;简单来说就是一个Javascript对象&#xff09;&#xff0c;用于描述HTML或XML文档的结构和内容。通过将页面的状态和结构保存在内存中&#xff0c;而不是直接操作真实的DOM&am…

智能路口安全预警系统:精准提醒降低事故发生率

路口安全预警系统的应用&#xff0c;无疑是提升道路交通安全管理水平、保障公众出行安全的重要措施。其综合了多种先进技术和设备&#xff0c;形成了一个高效、智能的安全防护网&#xff0c;具体优势体现在以下几个方面&#xff1a; 智能识别与预警&#xff1a;利用AI智能识别…

Linux学习-ELK(一)

配置三台elasticsearch服务器 安装包 elasticsearch.j2 报错 #---执行rsync命令报以下错误 [rootes1 ~]# rsync -av /etc/hosts 192.168.29.172:/etc/hosts root192.168.29.172s password: bash: rsync: 未找到命令 rsync: connection unexpectedly closed (0 bytes receive…

【React Native】第三方组件

WebView Picker mode {‘dropdown’} 只在 android 生效 Swiper 搭配 ScrollView 使用 AsyncStorage AsyncStorage.setItem()AsyncStorage.getItem()AsyncStorage.removeItem()AsyncStorage.clear() Geolocation 配置添加获取定位信息的授权许可&#xff0c;在 androi…

自定义封装输入框组件时的一些默认样式问题处理、原生input标签样式边线等处理 之 appearance: none 魔法 真的记住了

appearance: none 魔法 appearance: none; /* 确保覆盖所有默认样式 */-moz-appearance: textfield; /* 移除 Firefox 默认的外观 */-webkit-appearance: none; /* 移除 WebKit 浏览器的默认样式 */然后就如你所愿了&#xff1a;

K8S - Volume - NFS 卷的简介和使用

在之前的文章里已经介绍了 K8S 中两个简单卷类型 hostpath 和 emptydir k8s - Volume 简介和HostPath的使用 K8S - Emptydir - 取代ELK 使用fluentd 构建logging saidcar 但是这两种卷都有同1个限制&#xff0c; 就是依赖于 k8s nodes的空间 如果某个service pod中需要的vol…