【问题标题】:Get all records from mnesia table从 mnesia 表中获取所有记录
【发布时间】:2015-03-20 13:00:30
【问题描述】:

我正在使用 mnesia 为已连接到某个 websocket 的用户存储 Pid。

-record(connection, {pid, name}).

handle_join(ServiceName, WebSocketId, State, EventName) ->
  mnesia:dirty_write(#connection{pid=WebSocketId, name=EventName}).

Pid 是关键,使用 tv:start() 应用程序我可以看到 Pid 正确存储在连接表中。我现在希望能够向该表中的所有 Pid 发送消息,并在 websocket 连接关闭时删除 Pid。

从该连接表中检索所有 Pid 的最佳方法是什么?

【问题讨论】:

    标签: erlang mnesia


    【解决方案1】:

    您可以使用all_keys(Tab) -> KeyList | transaction abortdirty_all_keys(Tab) -> KeyList | exit({aborted, Reason}).

    all_keys(Tab) -> KeyList |交易中止

    此函数返回名为 Tab 的表中所有键的列表。这 此函数的语义是上下文相关的。见 mnesia:activity/4 了解更多信息。在事务上下文中,它获取一个读锁 整张桌子上。

    【讨论】:

      猜你喜欢
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 1970-01-01
      • 2016-06-21
      相关资源
      最近更新 更多