mnesia表不存在vs表未加载

时间:2011-04-12 15:27:28

标签: erlang mnesia

如何判断架构中不存在的表与尚未加载的表之间的区别?

我目前正在使用具有相对较大超时的mnesia:wait_for_tables()来检测表,但这是松散的(如果表实际需要很长时间才能启动会发生什么)并且耗时(如果表真的不是有)。

2 个答案:

答案 0 :(得分:1)

也许试试......

lists:member(table_name, mnesia:table_info(schema, tables)).

这只是猜测,但如果没有其他人有明确的答案,它可能是实验的基础。

答案 1 :(得分:1)

mnesia:table_info / 2可能有帮助。

  1. 如果您事先知道表名,并且想知道哪些节点有数据,

    mnesia:table_info(TableName, StorageType).
    

    StorageType应该是

    之一
    ram_copies, disc_copies or disc_only_copies.
    
  2. 或者,如果您想知道本地节点有表副本,只需

    mnesia:table_info(TableName, storage_type).
    

    如果本地节点没有副本,则返回“unknown”。