Hace un momento me ha tocado resolver un problema que ocurría en uno de nuestros motores de MySQL, se daba cuando intentaba crear una llave foránea y el error era semejante al que sigue, donde ??? representa el nombre de la tabla:
Can't create table '???' (errno: 150)
Se estaba volviendo algo molesto y tenía una idea de lo que podía ser, un problema con la FK de las tablas, pero no encontraba que específicamente. Leyendo un poco la documentación encontré y aprendí que se puede deber principalmente a 3 situaciones:
- Si los campos que harán referencia entre sí usan tipos de datos distintos.
- Si el constraint está configurado en “On Delete Set Null” pero el campo no permite Nulos.
- Si las tablas no son del mismo tipo, ejemplo: uno es MYISAM y el otro INNODB.
Bueno, no fue un problema muy difícil de resolver, pero a mi me tomó un tiempo ya que justamente en mi caso particular fue la tercer situación.
Articulos Relacionados:









en
en
en
en
yo tuve este mismo codigo de error, y encontre de la codificacion de las tablas en las que se hace relacion puede ser un problema al crear los constraint, espero alguien le sirva.
A mi me pasaba y es algo muy tonto.
Estaba haciendo las tablas desde Netbeans y resulta que hay que crear primero las tablas a las cuales se hacen referencia o sea las que llevan las claves principales, y luego las tablas que llevan las claves foráneas, ya que el programa es secuencial en la creación de las tablas.
Suerte
Hola, estoy checando tu post, debido a que una BD me está marcando el errno 150 y ya examiné las tablas varias veces y no encuentro el error en la FK que intento relacionar, espero alguien pueda ayudarme a detectar el error para poder corregirlo por favor.
El error que marca es el siguiente:
Error
consulta SQL:
Espero alguien me pueda ayudar con esto, por favor!!!
Saludos!!!
Hola Jib, el error que estás teniendo es que estás diseñando mal. Por ejemplo tienes la tabla estudios que tiene un PK compuesta por 2 columnas, luego quieres craear un CHECK CONSTRAINT FK, en la tabla estudios con la misma, solamente relacionando una de las columnas de la clave compuesta.
La solución pasa por rediseñar tu DER según lo que necesitas, hechale un ojo a eso. La tabla pacientes debería quedar algo así (creo que con el resto ya podrás):