2014-08-28 204 views
1

有誰知道爲什麼我有錯誤錯誤代碼:1215無法添加外鍵約束的MySQL

錯誤代碼: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

父和子表必須使用相同的存儲引擎。

我注意到hermanos使用InnoDBp_provincias使用MyISAM

欲瞭解更多信息,請參閱here

外鍵的定義是符合以下條件:

外鍵關係涉及到持有 中央數據值的父表和子表相同的值指向 回到其父。 FOREIGN KEY子句在子表 中指定。 父表和子表必須使用相同的存儲引擎。 它們不能是TEMPORARY表。

+0

是的,我從互聯網複製表,並沒有看到屬性..謝謝! – 2014-08-28 23:09:02

+0

@JoseGonzalez很高興能有所幫助。 – Donal 2014-08-28 23:09:48

相關問題