Recientemente he estado dándome trompazos con un error al crear claves foráneas (Foreign Key) en Mysql. El error que recibía era el siguiente:
Después de varias comprobaciones llego a la conclusión de que para que se puedan crear las claves foráneas hay que cumplir los siguientes puntos:
- Los campos referenciados entre sí tienen que usar el mismo tipo de datos, de lo contrario no os dejará.
- Ante un CONSTRAINT configurado como “On Delete Set Null” el campo debe permitir Nulos.
- Las claves foráneas solo pueden hacer referencia a un campo PRIMARY KEY o UNIQUE
- Ambas tablas deben ser del mismo tipo y este tipo solo puede ser INNODB.
- Las tablas deben estar en la misma Base de Datos (BD)
- Foreign Key no es válido para tablas temporales.
Espero que os sirva de ayuda para evitar futuros coscorrones contra la pared.
Y si aún no das con la tecla, tienes más info en el siguiente enlace: http://download.nust.na/pub6/mysql/doc/refman/5.0/es/innodb-foreign-key-constraints.html