Если уникальность определяется ограничением PRIMARY KEY
или UNIQUE
, то вы можете использовать INSERT IGNORE
:
INSERT IGNORE INTO TableB SELECT * FROM TableA;
Строки, которые являются дубликатами и конфликтуют со строками, уже находящимися в TableB, будут автоматически пропущены, а остальные 8000 строк будут вставлены.
Подробнее см. В документах по INSERT
.
Если вам нужно сделать это в PHP, прочитайте о функции array_diff_key()
. Сохраните ваши массивы со значениями первичного ключа в качестве ключа элементов массива. Однако нет никаких гарантий производительности этой функции PHP на таких больших массивах!