Я извлекаю набор данных из внешнего источника в свою базу данных. Числовые линии в этом наборе могут быть изменены (добавлены / удалены). Поэтому при каждом импорте необходимо проверять строки, которые необходимо удалить. Мне было интересно, какое лучшее решение для этого было.
Dataset day 1
Id|value
1|abc
2|cbd
3|xyz
Dataset day 2
Id|value
1|abc
3|Fhg
Для идентификаторов 1 и 3 я могу просто выполнить запрос insert on duplicate key update
. Что касается идентификатора 2, у меня нет никакой информации в день 2.
Итак, подходы, на которые я сейчас обращаюсь, и мне нужна ваша помощь, чтобы найти лучшее / предпочтительное решение:
- Удалите полный набор данных из таблицы, а затем снова импортируйте полный набор данных при новом импорте
- Добавьте поле
updateDateTime
, которое автоматически заполняется триггером обновления. Затем выполните второй запрос, который удаляет все строки, которые не были обновлены - Сохраните все идентификаторы в массиве / таблице, которые можно использовать для сопоставления с новым набором данных. Оставшиеся идентификаторы можно использовать для удаления из базы данных
- Другое .....
Каковы ваши предпочтения и / или идеи?