【问题标题】:How to update a record if it exists otherwise insert a new record in Mnesia如果记录存在,如何更新记录,否则在 Mnesia 中插入新记录
【发布时间】:2019-06-23 23:43:54
【问题描述】:

我正在尝试使用 mnesia:write() 更新 mnesia 中的记录,但是如果记录不存在,我如何确保此函数将插入

记录如下所示: (Id, Node, Timestamp, Level, Msg)

请帮忙

【问题讨论】:

    标签: erlang mnesia


    【解决方案1】:

    我正在尝试使用 mnesia:write() 更新 mnesia 中的记录,但是如何 如果记录不存在,我是否确保此函数将插入

    您不必非常努力,因为 mnesia:write(Table, Record, LockKind) 就是这样做的:

    将记录Record写入表Tab。

    请注意,描述中没有说:

    仅当记录已存在于选项卡中时,记录才会写入选项卡。

    这与我曾经使用过的任何数据库都不一致,并且让我想知道您如何能够将任何内容写入表。您将从一个空表开始,如果write/3 不允许您将记录写入表,除非该记录已在表中,那么您将永远无法向空表添加记录。

    对于所有 mnesia 表类型(set、ordered set 和 bag),write/3 将向表中写入一条记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 2023-03-10
      • 1970-01-01
      相关资源
      最近更新 更多