Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error Code: 1005. Can't create table 'users' (errno: 150)

Estas en el tema de Error Code: 1005. Can't create table 'users' (errno: 150) en el foro de Mysql en Foros del Web. Hola Amigos, tengo este problema. Al crear dos tablas me da esta error; Error Code: 1005. Can't create table 'users' (errno: 150) Tengo esta tabla: ...
  #1 (permalink)  
Antiguo 09/05/2014, 08:43
 
Fecha de Ingreso: mayo-2011
Ubicación: Bs.As Argentina
Mensajes: 193
Antigüedad: 12 años, 10 meses
Puntos: 3
Error Code: 1005. Can't create table 'users' (errno: 150)

Hola Amigos, tengo este problema. Al crear dos tablas me da esta error;

Error Code: 1005. Can't create table 'users' (errno: 150)

Tengo esta tabla:

Código MySQL:
Ver original
  1. CREATE  TABLE IF NOT EXISTS `profile` (
  2.   `idprofile` INT NOT NULL AUTO_INCREMENT ,
  3.   `iduser` INT NOT NULL ,
  4.   `surname` VARCHAR(45) NOT NULL ,
  5.   `name` VARCHAR(45) NOT NULL ,
  6.   `profession` VARCHAR(75) NULL ,
  7.   `about` TEXT NULL ,
  8.   `experience` TEXT NULL ,
  9.   `skills` TEXT NULL ,
  10.   `photo` BLOB NULL ,
  11.   `years` INT NULL ,
  12.   `country` VARCHAR(45) NULL ,
  13.   `province` VARCHAR(45) NULL ,
  14.   `contact` VARCHAR(45) NULL ,
  15.   `leyenda` VARCHAR(100) NULL ,
  16.   PRIMARY KEY (`idprofile`, `iduser`) )
Que al ejecutar lo hace bien.

El problema viene con la siguiente
Código MySQL:
Ver original
  1. CREATE  TABLE IF NOT EXISTS `users` (
  2.   `iduser` INT NOT NULL AUTO_INCREMENT ,
  3.   `mail` VARCHAR(45) NOT NULL ,
  4.   `surname` VARCHAR(45) NOT NULL ,
  5.   `name` VARCHAR(45) NOT NULL ,
  6.   `born` DATE NOT NULL ,
  7.   `password` VARCHAR(45) NOT NULL ,
  8.   PRIMARY KEY (`iduser`, `mail`) ,
  9.   INDEX `fk_users_profile1_idx` (`iduser` ASC) ,
  10.   CONSTRAINT `fk_users_profile1`
  11.     FOREIGN KEY (`iduser` )
  12.     REFERENCES `profile` (`iduser` )
Estoy luchando hace rato con este tema, alguien se lo ocurre que puede ser?.

Muchas gracias

Última edición por gnzsoloyo; 09/05/2014 a las 09:26
  #2 (permalink)  
Antiguo 09/05/2014, 08:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Error Code: 1005. Can't create table 'users' (errno: 150)

Por lo pronto, tienes una estructura mal definida...
Un USER tiene un PROFILE, pero un PROFILE no debe tener un USER. Estás haciendo un esquema circular.
Además, si la tabla "padre" es USER, no puedes apuntar su PK a ua tabla secundaria. Eso sin contar conque una FK debe apuntar a la PK completa y no a una parte de ella, y en PROFILE la PK es compuesta.

Corrige el modelo porque está mal diseñado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 09/05/2014 a las 09:26
  #3 (permalink)  
Antiguo 09/05/2014, 09:24
 
Fecha de Ingreso: mayo-2011
Ubicación: Bs.As Argentina
Mensajes: 193
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: Error Code: 1005. Can't create table 'users' (errno: 150)

Gracias gnzsoloyo por responder. Ahí lo resolví de la forma que me indicaste.

Muchas gracias por la ayudar.
  #4 (permalink)  
Antiguo 09/05/2014, 09:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Error Code: 1005. Can't create table 'users' (errno: 150)


__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: code, create, null, tabla, table
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:33.