错误代码:1215。无法添加外键约束MySQL

时间:2014-08-28 22:58:11

标签: mysql sql

有人知道我为什么会有错误

  

错误代码:1215。无法添加外键约束

当我尝试

  

ALTER TABLE hermanos ADD CONSTRAINT fk_hno_provincia FOREIGN KEY(provincia)参考p_provinciasid

在这些表格上:

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 ;

由于

1 个答案:

答案 0 :(得分:1)

父表和子表必须使用相同的存储引擎。

我注意到hermanos使用InnoDBp_provincias使用MyISAM

有关详细信息,请参阅here

  

外键定义符合以下条件:

     

外键关系涉及一个包含该表的父表   中心数据值和具有相同值的子表   回到它的父母。 FOREIGN KEY子句在子节点中指定   表。 父表和子表必须使用相同的存储引擎。   它们不能是TEMPORARY表。