Mysql,innodb - 无法创建外键

rix*_*rix 2 mysql innodb foreign-keys

使用默认引擎(MyIsam),我可以使用以下语法创建外键:

alter table `codes` add constraint foreign key(`associated_code_id`) references ask_codes(code_id)  on update cascade on delete cascade;
Run Code Online (Sandbox Code Playgroud)

但是,当我使用INNODB创建表时,我不再能够创建外键(mysql给我ERROR 1005(HY000):无法创建表'my_table.#sql-3311_16115'(错误号:150)).

这是语法问题吗?谢谢您的帮助,

ALH*_*ALH 6

问题是两列的类型不同 - 它们不完全匹配:

如果重新创建已删除的表,则它必须具有符合引用它的外键约束的定义.它必须具有正确的列名和类型,并且必须在引用的键上具有索引,如前所述.如果不满足这些,MySQL将返回错误号1005并在错误消息中引用错误150.