Mnesia删除错误

Mnesia deletion error

我正在使用 mnesia table.This table 有两个属性(主键及其值)。 现在我正在尝试从 mnesia 中删除一个元组 table.I 我正在使用 mnesia 的 delete/1 函数进行删除 purpose.This 函数采用 table 名称和键对应于必须删除的元组made.My 问题是当与传递的键对应的元组不是 present.This 删除函数每次都给出 {atomic,ok} 时,我如何处理场景?

对于你的情况,你必须先阅读记录,然后再删除它。要防止 'read' 和 'delete' 操作之间的其他事务访问记录,请在读取记录时使用 'write' 锁类型。它为您的交易提供对其的独占访问权:

delete_record(Table, Key) ->
    F = fun () ->
            case mnesia:read(Table, Key, write) of
                [Record] ->
                    mnesia:delete({Table, Key}),
                    {ok, Record};
                [] ->
                    mnesia:abort(not_exist)
            end
        end,
    mnesia:transaction(F).