Solución a “Error code: 1005. Can’t create table ‘table’ (errno: 150) en MySQL

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:

errno150

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

Autor: Jorge Bastida Cano

Programador de Software y Apasionado de las nuevas tecnologías.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.