有人知道我为什么会有错误
错误代码:1215。无法添加外键约束
当我尝试
时ALTER TABLE
hermanos
ADD CONSTRAINTfk_hno_provincia
FOREIGN KEY(provincia
)参考p_provincias
(id
)
在这些表格上:
CREATE TABLE IF NOT EXISTS `hermanos` (
`codigo` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(255) NOT NULL,
`apellidos` varchar(255) NOT NULL,
`direccion` varchar(255) NOT NULL,
`codigoPostal` int(11) NOT NULL,
`provincia` int(11) NOT NULL,
`numeroHermano` int(11) NOT NULL,
`dni` varchar(9) NOT NULL,
`tipoCuota` int(11) NOT NULL,
`sexo` int(11) NOT NULL,
PRIMARY KEY (`codigo`),
KEY `sexo` (`sexo`),
KEY `pk_hno_cuota` (`tipoCuota`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
CREATE TABLE IF NOT EXISTS `p_provincias` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(125) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=53 ;
由于
答案 0 :(得分:1)
父表和子表必须使用相同的存储引擎。
我注意到hermanos
使用InnoDB
而p_provincias
使用MyISAM
。
有关详细信息,请参阅here
外键定义符合以下条件:
外键关系涉及一个包含该表的父表 中心数据值和具有相同值的子表 回到它的父母。 FOREIGN KEY子句在子节点中指定 表。 父表和子表必须使用相同的存储引擎。 它们不能是TEMPORARY表。