我收到此错误消息:
第40行的错误1217(23000):无法删除或更新父行:外键约束失败
...当我尝试放一张桌子时:
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)
,即表引用上没有模式名称:-?