Recebo esta mensagem de erro:
ERROR 1217 (23000) na linha 40: Não é possível excluir ou atualizar uma linha pai: uma restrição de chave estrangeira falha
... quando tento derrubar uma mesa:
DROP TABLE IF EXISTS `area`;
... definido assim:
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;
O engraçado é que eu já eliminei todas as outras tabelas do esquema que possuem chaves estrangeiras area
. Na verdade, o banco de dados está vazio, exceto pela area
tabela.
Como pode haver linhas filho se não houver nenhum outro objeto no banco de dados? Pelo que eu sei, o InnoDB não permite chaves estrangeiras em outros esquemas, permite?
(Posso até executar um RENAME TABLE area TO something_else
comando: -?)
CONSTRAINT fk_servicio_area1 FOREIGN KEY (area_id) REFERENCES area (area_id)
, ou seja, nenhum nome de esquema na referência de tabela: -?