http://mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
Foreign keys definitions are subject to the following conditions:
Both tables
must be InnoDB tables and they must not be TEMPORARY tables.
In the referencing table,
there must be an index where the foreign key columns are listed as the first columns
in the same order. Such an index is created on the referencing table automatically if it does not exist.
In the referenced table,
there must be an index where the referenced columns are listed as the first columns
in the same order.
Index prefixes on foreign key columns are not supported. One consequence of this is that BLOB and TEXT columns cannot be included in a foreign key, because indexes on those columns must always include a prefix length.