Select Erlang mnesia相当于“从Tb中选择*

Select Erlang mnesia相当于“从Tb中选择*,select,erlang,mnesia,Select,Erlang,Mnesia,我是一个完全的erlang noob,我只想看看我的特定表格中有什么。我只想从一个特定的表中选择*作为开始。我看到的例子,比如,都有我不想要的列限制。我真的不知道如何形成火柴头或后卫来匹配任何东西 一个非常简单的入门,就如何只是把一切从一个表将非常感谢 最简单的方法可能是: 也就是说,匹配表foo中作为foo记录的所有内容,而不管字段的值是多少,每个字段都是“u”,即通配符。请注意,由于它使用记录构造语法,因此它将仅在包含记录定义的模块中工作,或者在评估rrmy_模块以使记录定义可用后在shel

我是一个完全的erlang noob,我只想看看我的特定表格中有什么。我只想从一个特定的表中选择*作为开始。我看到的例子,比如,都有我不想要的列限制。我真的不知道如何形成火柴头或后卫来匹配任何东西


一个非常简单的入门,就如何只是把一切从一个表将非常感谢

最简单的方法可能是:

也就是说,匹配表foo中作为foo记录的所有内容,而不管字段的值是多少,每个字段都是“u”,即通配符。请注意,由于它使用记录构造语法,因此它将仅在包含记录定义的模块中工作,或者在评估rrmy_模块以使记录定义可用后在shell中工作

我希望mnesia:dirty_match_objectfoo,'''.'能够工作,但是失败了,出现了一个错误类型的错误

要使用select执行此操作,请按如下方式调用:

mnesia:dirty_select(foo, [{'_', [], ['$_']}]).
这里,火柴头是u,即匹配任何东西。警卫为[],为空列表,即无额外限制。结果规范为['$\'],即返回整个记录。有关匹配规格的详细信息,请参见


如果一个表达式太深并且打印有。。。在shell中,您可以要求shell通过计算rpEXPRESSION来打印整个内容。表达式可以是再次调用的函数,也可以是上一个表达式返回的值的v-1,或者是前面有shell提示符42>的表达式返回的值的v42。最简单的方法可能是:

也就是说,匹配表foo中作为foo记录的所有内容,而不管字段的值是多少,每个字段都是“u”,即通配符。请注意,由于它使用记录构造语法,因此它将仅在包含记录定义的模块中工作,或者在评估rrmy_模块以使记录定义可用后在shell中工作

我希望mnesia:dirty_match_objectfoo,'''.'能够工作,但是失败了,出现了一个错误类型的错误

要使用select执行此操作,请按如下方式调用:

mnesia:dirty_select(foo, [{'_', [], ['$_']}]).
这里,火柴头是u,即匹配任何东西。警卫为[],为空列表,即无额外限制。结果规范为['$\'],即返回整个记录。有关匹配规格的详细信息,请参见

如果一个表达式太深并且打印有。。。在shell中,您可以要求shell通过计算rpEXPRESSION来打印整个内容。表达式可以是再次调用的函数,也可以是上一个表达式返回的值的v-1,或者是前面有shell提示符42>的表达式返回的值的v42。例如,您可以使用qlc:

F=乐趣-> Q=qlc:Q[R | | R例如,您可以使用qlc:

F=乐趣->
Q=qlc:Q[R | | R我得到一个错误*1:记录muc|u room未定义。如果我做了mnesia:system|u infotables。那么muc|u room就在列表中。dirty|u select起作用:它确实用…缩写了一些数据。有没有办法将结果转储到文件中?或者阻止缩写?另外,谢谢你的描述。为什么结果规范中有$,但没有在match spec中?有关$的信息,请参阅。谢谢,erlang mnesia:select文档提到了erts match spec,但没有链接,我很难找到它。我更新了答案,并添加了有关记录定义和完整打印术语的详细信息。我得到一个错误*1:记录muc_room未定义。如果我使用mnesia:system_infotables,那么muc_room在列表中。dirty_select有效:它确实使用…缩写了一些数据。是否有方法可以将结果转储到文件中?或者防止缩写?另外,感谢您的描述。为什么结果规范中有$而匹配规范中没有$呢?有关$的信息,请参阅。谢谢,erlang mnesia:select文档我修改了erts匹配规范,但没有链接,我很难找到它。我更新了答案,并添加了有关记录定义和完整打印术语的详细信息。我喜欢简单性,但我遇到了一个错误**异常错误:右侧值不匹配。当然,我用一个真实的表替换了foo。我不明白错误是什么消息告诉我:你在shell中尝试了吗?你已经将一个值绑定到变量F。输入fF。首先绑定到shell。是的,重新启动了shell,它像champ一样工作。我不知道F=…不会取代F。谢谢。我喜欢它的简单性,但我得到了一个错误**异常错误:没有匹配右侧值的乐趣。我有r当然,我用一个真正的表替换了foo。我不明白错误消息告诉我的是什么:你在shell中尝试了吗?你已经将一个值绑定到变量F。首先在shell中输入fF。是的,重新启动了shell,它像champ一样工作。我不知道F=…不会替换F。谢谢。