-
Добрый день. В проблеме учавствуют две таблицы из базы. При попытке создания внешнего ключа таблицы деталей по первичному таблицы мастера получаю сообщение 'Foreign key reference target does not exist'. Я так понимаю - в таблице деталей есть 'повисшие' записи не принадлежащие ни одному мастеру. Как сделать запрос к базе, что бы найти такие записи (что бы впоследствии их удалить)? Желательно, что бы выполнялся не сильно долго, т.к. в табилице деталей порядка 20 млн записей. Спасибо заранее ответившим.
-
Сам нашел, возможно пригодится:
select * from images left join series on (images.SERIES_UID = series.SERIES_UID) where SERIES_UID is null
нашлось 2 записи и успешно поправилось.
-
SELECT TOP 10 * FROM детали d LEFT JOIN мастер m ON d.target=m.key WHERE m.key IS NULL
примерно так... 2 млн раз. зато не долго.
-
ага, оно, спасибо :)
-
если удалить, то: delete from деталь d where not exists(select null from мастер m where m.SERIES_UID = d.SERIES_UID)
|