我有两个表“mm_ads”和“mm_users”。'mm_ads' 使用 Myisam 数据库引擎,而 'mm_users' 使用 InnoDb。根据我的阅读,在这种情况下不可能创建外键引用,因为后一个引擎是事务性的,而第一个不是。但是当我运行时:
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 的类型是相同的,我在表中有值。