gpt4 book ai didi

functional-programming - Erlang 确定记录是否有字段

转载 作者:行者123 更新时间:2023-12-04 08:42:47 25 4
gpt4 key购买 nike

我正在更新保存在 mnesia 中的记录模式。新模式包含一个新字段,我想在通过 id 读取记录后,检查记录是否包含该字段,如果没有,则将记录更新为新模式。

所以,比如我们的旧记录是这样的:

-record(cust, {id, name, street_address, city, state, zip}).

新记录添加字段street_address2:

-record(cust, {id, name, street_address, street_address2, city, state, zip}).

我希望能够即时升级现有记录的架构。要使用当前逻辑执行此操作,我需要按 ID 查找记录,检查记录中是否存在 address_line2 字段。如果它不存在,将它设置为未定义的原子并保存回 mnesia。出于某种原因,我很难找到执行此操作的好方法。

如有任何指导,我们将不胜感激。

最佳答案

根据 Ulf Wiger 在 https://groups.google.com/forum/#!topic/erlang-programming/U6Q0-_Usb50 的回复您确实需要使用 mnesia:transform_table(Tab, Fun, NewAttributeList) 调用来转换表格。

http://erldocs.com/R16B03-1/mnesia/mnesia.html?i=1&search=mnesia#mnesia

This function applies the argument Fun to all records in the table. Fun is a function which takes a record of the old type and returns a transformed record of the new type.

关于functional-programming - Erlang 确定记录是否有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23398609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com