我有一个名为 person
的 Mnesia 表,使用以下记录定义:
-record(person, {id, firstname, lastname, phone}).
该表包含以下值:
12 alen dumas 97888888
13 franco mocci 55522225
14 ali othmani 44444449
我想检索最后一个 ID,在我的例子中是 14。
我尝试:
test()->
Key=mnesia:last(person).
但是当我测试这个函数时,我遇到了这个错误:
** exception exit: {aborted,no_transaction}
in function mnesia:abort/1
这是为什么呢?我能做什么呢?
最佳答案
错误消息异常退出:{aborted,no_transaction}
非常清楚:该函数预计将在事务上下文中调用,而您的代码则不然。
如果不需要事务,可以使用 mnesia:dirty_last/1 代替。
请注意,如果表类型是ordered_set,则 mnesia:last/1 和 mnesia:dirty_last/1 都有意义。对于其他类型,没有定义明确的顺序。
关于erlang - Mnesia 返回 {aborted, no_transaction},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14984865/