2

スキーマに存在しないテーブルとまだロードされていないテーブルの違いをどのように見分けることができますか?

私は現在、mnesia:wait_for_tables() を比較的大きなタイムアウトで使用してテーブルを検出していますが、これは緩く (テーブルが実際に起動するのに時間がかかる場合)、時間がかかります (テーブルが実際に存在しない場合)。

4

2 に答える 2

1

多分試して...

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

これは推測にすぎませんが、決定的な答えが他にない場合は、実験の基礎になる可能性があります.

于 2011-04-27T06:32:10.863 に答える
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).
    

    ローカル ノードにコピーがない場合、これは「不明」を返します。

于 2011-05-06T07:31:12.637 に答える