我有这个记录
-record(transaction, {id, transaction_code, operation_code, ip_access).
并使用此代码创建此表的克隆,名为 transaction_backup
mnesia:create_table(transaction_backup,[{disc_copies, [node()]},{attributes, record_info(fields, transaction)},
{record_name, transaction}]).
并使用此代码将数据从事务传输到transaction_backup
mnesia:transaction(fun() ->
Records = mnesia:select(transaction, [{'_', [], ['$_']}]),
[ok = mnesia:write(transaction_backup, Record, write) || Record <- Records]
end).
表示表事务是否包含以下值:
1 E001 F200 127.0.01
2 E102 F300 127.0.01
3 E105 F402 127.0.01
表 transaction_backup 将包含相同的内容
1 E001 F200 127.0.01
2 E102 F300 127.0.01
3 E105 F402 127.0.01
现在我想创建一个表 transaction_backup 但这次表 transaction_backup 有其他名为idback的字段将是 transaction_backup 的唯一 id
所以我们应该以另一种方式创建 transaction_backup 而不是这样
mnesia:create_table(transaction_backup,[{disc_copies, [node()]},{attributes, record_info(fields, transaction)},
{record_name, transaction}]).
并且idback的值将使用此代码自动增加
idback= next_id(tranasction_backup),
next_id(T) ->
mnesia:dirty_update_counter(counter, T, 1).
所以当我们将数据从事务传输到事务备份时,我认为应该做这样的事情
mnesia:transaction(fun() ->
Records = mnesia:select(transaction, [{'_', [], ['$_']}]),
F = fun() ->
Idback= next_id(tranasction_backup),
Trans = #tranasaction_backup{idback= Idback},
mnesia:write(Trans),
{ok};
end,
{atomic, Val} = mnesia:transaction(F),
Val.
[ok = mnesia:write(transaction_backup, Record, write) || Record <- Records]
end).
所以表 transaction_backup 将包含这个值
1 1 E001 F200 127.0.01
2 2 E102 F300 127.0.01
3 3 E105 F402 127.0.01
我想知道我们如何创建表 transaction_backup
正如我所说,我尝试使用:
mnesia:create_table(transaction_backup,[{disc_copies, [node()]},{attributes, record_info(fields, transaction)},
{record_name, transaction}]).
但在我的情况下,表transaction_backup比名为idback的表事务具有更多字段
所以为了创建表transaction_backup
,我们应该以另一种方式尝试