Я отримую це повідомлення про помилку:
ПОМИЛКА 1217 (23000) у рядку 40: Неможливо видалити або оновити батьківський рядок: помилка зовнішнього ключа не вдається
... коли я намагаюся опустити стіл:
DROP TABLE IF EXISTS `area`;
... визначено так:
CREATE TABLE `area` (
`area_id` char(3) COLLATE utf8_spanish_ci NOT NULL,
`nombre_area` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
`descripcion_area` varchar(100) COLLATE utf8_spanish_ci NOT NULL,
PRIMARY KEY (`area_id`),
UNIQUE KEY `nombre_area_UNIQUE` (`nombre_area`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
Найсмішніше, що я вже скинув усі інші таблиці в схемі, в яких є сторонні ключі area
. Насправді база даних порожня, крім area
таблиці.
Як це можливо мати дочірні рядки, якщо в базі даних немає жодного іншого об’єкта? Наскільки я знаю, InnoDB не дозволяє сторонні ключі в інших схемах, чи не так?
(Я навіть можу виконати RENAME TABLE area TO something_else
команду: -?)
CONSTRAINT fk_servicio_area1 FOREIGN KEY (area_id) REFERENCES area (area_id)
, тобто не має назви схеми в таблиці посилання: -?