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 ответ

Решение

Убедитесь, что текущие данные в вашей таблице полностью удовлетворяют добавляемому ограничению. Похоже, у вас есть администраторы с неверными идентификаторами отделов.

Другие вопросы по тегам