Конференция "Базы" » Невозможно создать внешний индекс. Нужна помощь в запросе [FB 2.5]
 
  • Дмитрий Белькевич © (16.02.15 14:23) [0]
    Добрый день. В проблеме учавствуют две таблицы из базы. При попытке создания внешнего ключа таблицы деталей по первичному таблицы мастера получаю сообщение 'Foreign key reference target does not exist'. Я так понимаю - в таблице деталей есть 'повисшие' записи не принадлежащие ни одному мастеру. Как сделать запрос к базе, что бы найти такие записи (что бы впоследствии их удалить)? Желательно, что бы выполнялся не сильно долго, т.к. в табилице деталей порядка 20 млн записей. Спасибо заранее ответившим.
  • Дмитрий Белькевич © (16.02.15 15:30) [1]
    Сам нашел, возможно пригодится:


    select * from images left join series on (images.SERIES_UID = series.SERIES_UID) where SERIES_UID is null


    нашлось 2 записи и успешно поправилось.
  • sniknik © (16.02.15 15:30) [2]
    SELECT TOP 10 * FROM детали d
    LEFT JOIN мастер m ON d.target=m.key
    WHERE m.key IS NULL

    примерно так... 2 млн раз. зато не долго.
  • Дмитрий Белькевич © (16.02.15 15:31) [3]
    ага, оно, спасибо :)
  • Кщд © (19.02.15 13:33) [4]
    если удалить, то:
    delete from деталь d where not exists(select null from мастер m where m.SERIES_UID = d.SERIES_UID)
 
Конференция "Базы" » Невозможно создать внешний индекс. Нужна помощь в запросе [FB 2.5]
Есть новые Нет новых   [134427   +34][b:0][p:0]