Mnesiaにはイベントベースの通知があります。 mnesiaイベントを購読するプロセス(gen_server)を持つことが可能です。これらのイベントは、テーブルイベント、システムイベント、その他のカテゴリに分類されます。イベントに関する部分のmnesiaのドキュメントを読んでください。実際には、mnesiaイベントハンドラを使用してイベントを報告するプロセスでは、mnesia:report_event(Event)
を呼び出して可能です。 mnesiaイベントに登録されているすべてのプロセスにこのメッセージが表示されます。 Mnesiaは、テーブル上のすべてのトランザクションに関するリアルタイム情報をサブスクライブされたプロセスに報告します。トランザクションの読み取り、書き込み、または削除が可能であり、ループ内のプロセスは、関心のあるイベントのタイプとパターンが一致します。詳細で単純なテーブルイベントがあります。私は個人的に非常に便利なイベントを見つけました。あなたはドキュメントから詳細を得ることができるはずです。
イベントについて現在、俗人のテーブルには同じタイプのレコードが格納されています。この情報にはmnesia:table_info(Table_name::atom(),attributes)
を呼び出すことでアクセスできます。 mnesiaテーブルにインデックスを適用すると、最初のレコードフィールド(通常は「プライマリキー」と呼ばれます)でない限り、これらの属性のフィールドはすべて受け入れられます。理由の数年齢、性別、FIRST_NAME、OTHER_NAME、ジョブインデックス付けとレコード検索用のすべてのmnesiaのAPI:私は十分にあなたの質問を理解している場合
-record(employee,{id,first_name,other_name,sex,age,job}).
install(Nodes)->
mnesia:create_schema(Nodes),
mnesia:start(),
mnesia:create_table(employee,[{index,[age,sex,first_name,job]},
{attributes,record_info(fields,employee)}]),
mnesia:stop(),
ok.
以下のコードを考えてみましょう、私は今、テーブルの従業員が列を持っていると言うことができます索引付き属性に基づいて作業するmnesia:index_read/3 or mnesia:index_match_object/2 or mnesia:index_match_object/4
。幸運
/[email protected]
多くのありがとう。給料別にソートしてタプルを使って名前を付けるには、add_table_index(staff、{sal、lname、fname})を使ってください。(テーブル、スタッフ、{名、フィールド{SAL、LNAME、FNAME}?Mnesiaこれは少し聞こえるかもしれ?私は今、キーフィールドとして使用し、単一のキーフィールドへ順番に私のキーフィールドのデータをconcatentate手動ではなく、プログラムtupledテーブルのフィールドを受け入れ、インデックスフィールドをtupled?それともん私はこれらの選択肢を試してみようと思っていますが、助けていただければ幸いです。Joe Pee – user557513
私の最後の質問は親切に無視してください。答えは明らかです。ありがとう。 – user557513