DBAtlas · Атлас эксплуатации баз данных

1452: Не удаётся добавить или обновить дочернюю строку: нарушено ограничение внешнего ключа

MySQL

Что это значит?

Вы вставляете или обновляете дочернюю строку, но значение родительского ключа, на которое она указывает, отсутствует в ссылочной таблице; ограничение внешнего ключа её отклоняет.

Почему возникает?

INSERT/UPDATE со ссылкой на несуществующий родительский ключ, загрузка данных в неверном порядке (сначала дочерние) или удалённая родительская строка.

Как исправить

Сначала вставьте родительскую строку, затем дочернюю. Убедитесь, что ссылочное значение существует: SELECT * FROM parent_table WHERE key_column = value. Соблюдайте порядок родитель — потомок при массовой загрузке. Используйте SET FOREIGN_KEY_CHECKS=0 только в контролируемых операциях обслуживания и по завершении возвращайте значение 1.

Открыть в DBAtlas →

Ещё по этой СУБД