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).
我正在使用 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).