erlang - 无法删除我知道存在的 mnesia 表

标签 erlang elixir mnesia

我有一个 mnesia 表,我正试图删除它。但是,当我尝试运行 :mnesia.delete(TableName) 时,我得到了这个错误 {:aborted, {:no_exists, TableName}}

当我尝试通过运行 :mnesia.create_table(TableName, [attributes: [:id, :att1, :att2], disc_copies: [Node.self()]]) 我得到这个 {:aborted, {:already_exists, TableName}}

删除后我仍然可以看到表的 .DCD 文件,这是什么原因造成的,我该如何解决?

注意:代码在 Elixir 代码库中。

编辑:当我的应用程序启动时,我尝试删除并重新创建该表,即使它存在。

最佳答案

:mnesia.delete/1在给定表中查找要删除的键(并采用元组 {Table, Key})。

你可能想要 :mnesia.delete_table/1这将删除表本身。

更多文档:http://erlang.org/doc/man/mnesia.html#delete_table-1

关于erlang - 无法删除我知道存在的 mnesia 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50818503/

相关文章:

performance - Erlang:ets 选择和匹配性能

elixir - 如何在 Phoenix 应用程序中设置 conn.secret_key_base

elixir - 在一个进程中多次运行 ExUnit 测试时如何避免 "warning: redefining module Foo"

deployment - 如何以标准方式处理 mnesia 模式?

erlang - ets `public` `named`表和 `local`和 `ram_copy` mnesia表有什么区别

erlang - 在 mnesia 集群中,查询哪个节点?

web-applications - 考虑在生产中学习和使用的Erlang Web框架

erlang - 为什么 Erlang 会在存在高阶函数的情况下放弃生成堆栈跟踪?

erlang - 如何将一个字符串分成子串?

elixir - 在 Phoenix HTML 链接中设置特殊字符的格式