【发布时间】:2011-05-06 15:31:12
【问题描述】:
如何区分架构中不存在的表和尚未加载的表?
我目前正在使用具有相对较大超时时间的 mnesia:wait_for_tables() 来检测表,但这很松散(如果表实际上需要很长时间才能启动会发生什么)并且很耗时(如果表真的没有那里)。
【问题讨论】:
如何区分架构中不存在的表和尚未加载的表?
我目前正在使用具有相对较大超时时间的 mnesia:wait_for_tables() 来检测表,但这很松散(如果表实际上需要很长时间才能启动会发生什么)并且很耗时(如果表真的没有那里)。
【问题讨论】:
也许可以试试……
lists:member(table_name, mnesia:table_info(schema, tables)).
这只是一个猜测,但如果没有其他人有明确的答案,它可以作为实验的基础。
【讨论】:
mnesia:table_info/2 可能会有所帮助。
如果事先知道表名,想知道哪些节点有数据,
mnesia:table_info(TableName, StorageType).
StorageType 应该是其中之一
ram_copies, disc_copies or disc_only_copies.
或者,如果你想知道本地节点有表副本,只需
mnesia:table_info(TableName, storage_type).
如果本地节点没有副本,则返回“未知”。
【讨论】: