MySQL Workbench. ОШИБКА 1452: Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполнено. Операция не удалась
Я не могу связать подчиненного (таблица администратора) и основную таблицу (отдел) внешним ключом. Отображается следующее сообщение:
Выполнение:
ALTER TABLE `grocery_supermarket_manager`.`administrator`
ADD CONSTRAINT `AdministratorDepartment_FK`
FOREIGN KEY (`id_department`)
REFERENCES `grocery_supermarket_manager`.`department` (`id_department`)
ON DELETE CASCADE
ON UPDATE CASCADE;
Операция не выполнена: при применении сценария SQL к базе данных произошла ошибка.
ERROR 1452: Cannot add or update a child row: a foreign key constraint fails (`grocery_supermarket_manager`.`#sql-9ac_8`, CONSTRAINT `AdministratorDepartment_FK` FOREIGN KEY (`id_department`) REFERENCES `department` (`id_department`) ON DELETE CASCADE ON UPDATE CASCADE)
SQL Statement:
ALTER TABLE `grocery_supermarket_manager`.`administrator`
ADD CONSTRAINT `AdministratorDepartment_FK`
FOREIGN KEY (`id_department`)
REFERENCES `grocery_supermarket_manager`.`department` (`id_department`)
ON DELETE CASCADE
ON UPDATE CASCADE
Название столбца: "id_department" таблицы "Отдел" имеют:
- Тип данных - INT(10)
- Хранение: первичный ключ, не ноль, уникальный, без знака, автоинкремент.
Название столбца: "id_department" таблицы "Администратор" имеют:
- Тип данных - INT(10)
- Хранение: не нулевое, без знака.
1 ответ
Решение
Убедитесь, что текущие данные в вашей таблице полностью удовлетворяют добавляемому ограничению. Похоже, у вас есть администраторы с неверными идентификаторами отделов.