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

Добрый день, подскажите пожалуйста, имеются 2 таблицы (точнее, первая это вьюшка, вторая таблица):

DONOR
id ; full_name ; phone ; hash

RECIPIENT
id ; full_name ; phone ; hash ; date_changed


Во второй таблице id - это первичный ключ, задача такая
чтобы по расписанию мне нужно данные из DONOR вставлять в RECIPIENT
1) при этом если по id полю такое значение уже есть в RECIPIENT, то проверять совпадает ли у них поле hash
* если оно не совпадает, то обновить поля full_name, phone, hash в RECIPIENT значениями из DONOR, А ТАКЖЕ! в поле date_changed обновить значение на текущий UNIX_TIMESTAMP
* если совпадает, то игнорировать
2) если в таблице RECIPIENT нет ещё такого id, то просто вставлять значения из DONOR, и в date_changed вставлять текущую UNIX_TIMESTAMP

Обычную как бы синхронизацию вроде как легко сделать с помощью INSERT ON DUPLICATE KEY UPDATE
но мне получается ещё нужно небольшую логику добавить, которая при вставке новых значений (ещё не существующих) обновляло поле date_changed текущей датой, а также при обновлении существующих записей и различающихся у них полей hash - также обновлять поле date_changed
  • Вопрос задан
  • 37 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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