There is no index in the referenced table where the referenced columns appear as the first columns.

MySQL cannot create foreign key constraint

According to http://dev.mysql.com/doc/refman/5.5/en/create-table-foreign-keys.html

 

Mysql需要外键和引用键上的索引,这样外键检查可以很快,不需要扫描表。在引用表中,必须有一个索引,其中外键列按相同顺序作为第一列列出。

InnoDB允许外键引用任何索引列或列组。但是,在引用的表中,必须有一个索引,其中引用的列以相同的顺序作为第一列列出。

因此,如果引用表中的索引存在,并且它由多个列组成,而所需的列不是第一个列,就会发生错误。

我们失误的原因是违反了以下规则:

外键和引用键中的相应列必须具有类似的数据类型。整数类型的大小和符号必须相同。字符串类型的长度不需要相同。对于非二进制(字符)字符串列,字符集和排序规则必须相同。

 

你可能感兴趣的:(mysql)