【问题标题】:Error Code: 1215. Cannot add foreign key constraint MySQL错误代码:1215。无法添加外键约束 MySQL
【发布时间】:2014-10-22 22:26:01
【问题描述】:

有人知道我为什么会出错

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

当我尝试时

改变表hermanos添加约束fk_hno_provincia外键(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 ;

谢谢

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

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

    我注意到hermanos 使用InnoDBp_provincias 使用MyISAM

    欲了解更多信息,请参阅here

    外键定义需满足以下条件:

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

    【讨论】:

    • 是的,我从网上复制了表格,但没有看到属性。。谢谢!
    • @JoseGonzalez 很高兴能提供帮助。
    猜你喜欢
    • 2018-05-13
    • 2015-05-27
    • 2017-09-18
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 2016-05-01
    • 2018-11-10
    相关资源
    最近更新 更多