Как обновить запись, если она существует, иначе вставить новую запись в Mnesia - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь обновить запись в mnesia с помощью mnesia: write (), но как мне убедиться, что эта функция будет вставлена, если запись не существует

Запись выглядит так: (Id, Node, Отметка времени, уровень, сообщение)

Пожалуйста, помогите

1 Ответ

0 голосов
/ 30 января 2019

Я пытаюсь обновить запись в mnesia с помощью mnesia: write (), но как мне убедиться, что эта функция будет вставлена, если запись не существует

Вы ненужно очень стараться, потому что это то, что mnesia: write (Table, Record, LockKind) делает:

Записывает запись Record в таблицу Tab.

Обратите внимание, что в описании не сказано:

Запись записывается в Tab только в том случае, если запись уже существует в Tab.

, котораяпротиворечил бы любой базе данных, которую я когда-либо использовал, и заставил бы меня задуматься, как вы сможете записать что-либо в таблицу.Вы начнете с пустой таблицы, и если write/3 не позволит вам записать запись в таблицу, если эта запись уже не была в таблице, то вы никогда не сможете добавить запись в пустую таблицу.

Для всех типов таблиц mnesia (набор, упорядоченный набор и сумка) write/3 запишет запись в таблицу.

...