1、mysql --------------操作成功--------> mnesia---操作成功---------> 结束
2、mysql---------------操作成功-------->mnesia----操作失败 throw异常-------->会滚----->结束
3、mysql---------------操作失败-------->直接结束
暂时想到下面方法,谁有更好的方法。
代码片段
Fun =
fun() ->
case odbc_igrs_cache:del_privacy_lists(LServer, MServer, MUser) of
ok ->
case mnesia:dirty_delete(privacy,{LUser, LServer}) of
ok ->
ok;
Reason ->
throw({aborted, Reason})
end
end
end,
ejabberd_odbc:sql_transaction(Server, Fun).