У меня есть 2 таблицы (srcTable1 & destTable), которые имеют одинаковые схемы. Я пытаюсь скопировать все строки из srcTable в destTable и игнорировать дубликаты. Я думал, что могу просто добавить предложение WHERE с подзапросом, который даст мне только строки, которые не дублируются. Однако, похоже, это не работает. Я не получаю никаких вставленных или выбранных строк.Копирование строк из одной таблицы в другую, игнорирование дубликатов
INSERT INTO destTable
SELECT * FROM srcTable
WHERE NOT EXISTS(SELECT * FROM destTable)
Я понимаю, что я мог бы сделать что-то вроде этого:
INSERT INTO destTable
SELECT * FROM srcTable
WHERE MyKey IN (SELECT MyKey FROM destTable)
Однако мои таблицы имеют несколько ключей, и я не могу думать о том, как вы могли бы сделать это с несколькими ключами.
Любая идея, что я делаю неправильно или у вас есть идеи?
Можете ли вы быть немного более конкретно о том, что дублирует вас беспокоит. Возникает проблема с вставкой строк из источника, которые уже находятся в dest, строки, которые дублируются в источнике, или и то, и другое? – JohnFx
Вы используете mysql или mssql? –