Otrzymuję ten komunikat o błędzie:
BŁĄD 1217 (23000) w wierszu 40: nie można usunąć ani zaktualizować wiersza nadrzędnego: nie powiodło się ograniczenie klucza obcego
... kiedy próbuję upuścić stół:
DROP TABLE IF EXISTS `area`;
... zdefiniowane w ten sposób:
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;
Zabawne jest to, że porzuciłem już wszystkie inne tabele w schemacie, które mają klucze obce area
. W rzeczywistości baza danych jest pusta, z wyjątkiem area
tabeli.
Jak może mieć wiersze potomne, jeśli w bazie danych nie ma żadnego innego obiektu? O ile wiem, InnoDB nie zezwala na klucze obce w innych schematach, prawda?
(Mogę nawet uruchomić RENAME TABLE area TO something_else
polecenie: -?)
CONSTRAINT fk_servicio_area1 FOREIGN KEY (area_id) REFERENCES area (area_id)
, tj. Brak nazwy schematu w odwołaniu do tabeli: -?