如何检测mnesia架构和表是否已在代码中创建?

why*_*why 5 erlang mnesia

我想在系统启动后在我的代码中创建一个mnesia架构和表,所以我需要检测天气mnesia架构和表已经创建.如果没有,我想创建它们.这是一个好主意吗?我如何检测mnesia架构和表?

spk*_*ira 5

解决此问题的一种方法是-

  1. 尝试使用创建表 mnesia:create_table(Table_name, ...)

  2. 如果表已经存在(1)将返回 {aborted, {already_exists, Table_name}}

  3. 如果没有退出表,它将被创建并{atomic,ok}在成功时返回

  4. 如果在(3)中创建表时有任何错误,{aborted, Reason} 将返回。

根据需要处理这些返回值中的每一个。