Je reçois ce message d'erreur:
ERREUR 1217 (23000) à la ligne 40: impossible de supprimer ou de mettre à jour une ligne parente: une contrainte de clé étrangère échoue
... quand j'essaye de déposer une table:
DROP TABLE IF EXISTS `area`;
... défini comme ceci:
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;
Le plus drôle, c'est que j'ai déjà supprimé toutes les autres tables du schéma qui ont des clés étrangères area
. En fait, la base de données est vide à l'exception de la area
table.
Comment peut-il avoir des lignes enfants s'il n'y a pas d'autre objet dans la base de données? Autant que je sache, InnoDB n'autorise pas les clés étrangères sur d'autres schémas, n'est-ce pas?
(Je peux même exécuter une RENAME TABLE area TO something_else
commande: -?)
CONSTRAINT fk_servicio_area1 FOREIGN KEY (area_id) REFERENCES area (area_id)
, à savoir, aucun nom de schéma sur la référence de table: -?