我有兩個表'mm_ads'和'mm_users'。 'mm_ads'使用Myisam數據庫引擎,而'mm_users'使用InnoDb。從我所讀的內容來看,在這種情況下不可能創建一個外鍵索引,因爲後者引擎是事務性的,而第一個引擎不是。但是當我運行時:Mysql錯誤代碼1452與兩個表與不同的數據庫引擎
ALTER TABLE mm_ads ADD CONSTRAINT FK_76EC3E1DF132696E3358 FOREIGN KEY (userid) REFERENCES mm_users (id)
沒有錯誤顯示,它報告受影響的行數,沒有別的。比我看到,fk不是隻創建表中列的索引。當我研究這個問題時,我發現表的引擎不同,所以我將mm_ads的引擎更改爲Innodb。但是當我運行命令時,我得到這個錯誤。
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`admin_pw`.<result 2 when explaining filename '#sql-61b_3019e'>, CONSTRAINT `FK_76EC3E1DF132696E3358` FOREIGN KEY (`userid`) REFERENCES `mm_users` (`id`))
userid和id的類型是相同的,我在表中有值。
下降及補充外鍵約束一次。 – SparKot 2013-02-28 14:10:59