сравните две таблицы и обновите вторую таблицу только в том случае, если добавлены дополнительные строки

#php #mysql

#php #mysql

Вопрос:

Я думаю, что я, наконец, достиг точки, когда поиск в Google больше не эффективен в моем образовании по php / mysql. Итак, это мой первый вопрос по stack overflow. Я надеюсь, что я не облажаюсь.

Я импортирую таблицу от стороннего поставщика два раза в день. Я хочу импортировать таблицу в существующую таблицу. Между обновлениями обе таблицы будут изменены. Импортированная таблица будет иметь другое количество строк, но в существующей таблице значения в строках будут изменены.

Я хочу добавить только те строки, которых еще не было в существующей таблице, но я не хочу использовать mysql REPLACE из-за измененных значений существующей таблицы.

Есть идеи о том, как это сделать?

Ответ №1:

Возможно, вам повезет с использованием INSERT IGNORE .

 INSERT IGNORE
  INTO table1 
SELECT *
  FROM table2
  

Это приведет к вставке всех новых значений первичного ключа из table2 в table1. Если ключ уже существует в table1, он заменит ключ в table2 и, следовательно, он не будет вставлен / заменен.