Как вставлять/обновлять значения в таблице значениями из другой таблицы при условии что общее поле у них равно?

Добрый день, подскажите пожалуйста в моей проблеме.
Имеется таблица REPORT , которая состоит из колонок MAC_ADDRESS, CREATED_DATE, HASH
А также таблица COMPUTER, которая из MAC_ADDRESS (как бы используется для связи с REPORT), CREATED_DATE, CHANGED_DATE, HASH

Изначально таблица COMPUTER пустая, а REPORT периодически заполняется сторонним сервисом
Задача такая, что также по определенному расписанию, нужно в COMPUTER вставлять значения основываясь на значения из REPORT . Т.е. у меня будет определенная процедура запускающаяся например 1 раз в час.

Но вставлять нужно так, что сначала перед вставкой проверить есть ли в таблице COMPUTER строка у которой поле MAC_ADDRESS уже есть из вставляемой строки таблицы REPORT
Если такой строки ещё нет, то вставляй новую строку в COMPUTER со значениями из REPORT (т.е. REPORT.MAC_ADDRESS -> COMPUTER.MAC_ADDRESS, REPORT.CREATED_DATE -> COMPUTER.CREATED_DATE, REPORT.CREATED_DATE -> COMPUTER.CHANGED_DATE, REPORT.HASH -> COMPUTER.HASH)

А вот если при попытке вставить уже есть такая строка с таким же MAC_ADDRESS, то нужно проверить если у них REPORT.HASH = COMPUTER.HASH то просто игнорируй и ничего не делай, а если они НЕ РАВНЫ, то просто обновить значения в поле COMPUTER.CHANGED_DATE значением из REPORT.CREATED_DATE)

Другими словами в таблице REPORT пишутся отчёты по компьютерам, и они иногда меняются, поле HASH как признак изменений, а вот в таблице COMPUTER нужно просто сделать уникальный список компьютеров по MAC, в котором хранить как быть только дату создания и изменения получается
  • Вопрос задан
  • 23 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы