me sale este mensaje de error:falso de restricción de clave externa fall
ERROR 1217 (23000) en la línea 40: no se puede eliminar o actualizar una fila padre: una restricción de clave externa falla
... cuando intento eliminar una tabla:
DROP TABLE IF EXISTS `area`;
... se define así:
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;
Lo curioso es que ya se me cayó todas las otras tablas en el esquema que tiene las claves externas contra area
. En realidad, la base de datos está vacía a excepción de la tabla area
.
¿Cómo es posible que haya filas secundarias si no hay ningún otro objeto en la base de datos? Por lo que sé, InnoDB no permite claves externas en otros esquemas, ¿o sí?
(incluso puedo ejecutar un comando RENAME TABLE area TO something_else
: -?)
¿Es posible que la tabla forme parte de una relación Referencial-Integridad en otro esquema? –
Tengo algunas otras copias de la aplicación, así que siempre es posible. Sin embargo, la sintaxis que uso es básicamente 'CONSTRAINT fk_servicio_area1 FOREIGN KEY (area_id) REFERENCES area (area_id)', es decir, no hay un nombre de esquema en la referencia de la tabla: -? –