我想有一个函数,确保我需要的表已经创建,如果不创建它。这里的样本:erlang mnesia - 非法记录信息
ensure_table_exists(Table, MnesiaTables, Nodes) ->
case lists:member(Table, MnesiaTables) of
true ->
throw({error, db_might_have_already_been_created});
false ->
mnesia:create_table(Table, [{disc_copies, Nodes},
{attributes, record_info(fields, Table)}]),
ok
end.
的问题是,编译时出现错误:illegal record info
。 它可能必须这样做,record_info在编译时解析或第二个参数记录信息应该实际上是一个可以从源代码中检索的记录?
我知道防守在Erlang编程的坏习惯,但我不明白这是什么必须做我的功能?我只是试图确保我没有创建架构。 – hyperboreean 2010-09-10 14:17:04