MySQL server returns this error in the following cases:
- The referenced table is not an InnoDB table type;
- Other table contains the referenced field that is non-unique;
- Other table includes the referenced field with a dissimilar type to other id.
Note: In MySQL before v.5.0, the error also means that there is no index specified on the field id.