如何更新记录(如果存在),否则在Mnesia中插入新记录

时间:2019-01-30 16:15:22

标签: erlang mnesia

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

记录看起来像这样: (ID,节点,时间戳,级别,消息)

请帮助

1 个答案:

答案 0 :(得分:2)

  

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

您不必费劲,因为mnesia:write(Table, Record, LockKind)就是这样:

  

将记录写到表选项卡。

请注意,说明中没有说明:

  

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

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

对于所有的mnesia表类型(集合,有序集合和包),write/3会在表中写入一条记录。