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

error 150 mysql

Estas en el tema de error 150 mysql en el foro de Mysql en Foros del Web. Buenas. Al importar una bbdd una de las tablas me da el siguiente error: #1005 - Can't create table 'mydb.entrenadores' (errno: 150) En otras tablas ...
  #1 (permalink)  
Antiguo 18/08/2012, 10:15
 
Fecha de Ingreso: febrero-2011
Ubicación: Madrid
Mensajes: 62
Antigüedad: 13 años, 2 meses
Puntos: 1
error 150 mysql

Buenas.

Al importar una bbdd una de las tablas me da el siguiente error:

#1005 - Can't create table 'mydb.entrenadores' (errno: 150)

En otras tablas tengo también mismas FK, no sé que será. Los datos para las FK son los mismos. Y si quito la tabla entrenadores, pues salta el errror a la siguiente tabla, ya que imagino que todas deben tener el mismo error, pero lo veo bien...



Código PHP:
CREATE  TABLE IF NOT EXISTS `mydb`.`entrenadores` (
  `
idCHAR(36NOT NULL ,
  `
nombreVARCHAR(255NULL ,
  `
anyo_nacimientoDATETIME NULL ,
  `
nacionalidadVARCHAR(255NULL ,
  `
club_actualVARCHAR(255NULL ,
  `
club_anteriorVARCHAR(255NULL ,
  `
anyo_debutDATETIME NULL ,
  `
club_debutVARCHAR(255NULL ,
  `
createdDATETIME NULL ,
  `
modifiedDATETIME NULL ,
  `
equipo_idCHAR(36NOT NULL ,
  
PRIMARY KEY (`id`) ,
  
INDEX `fk_equipos` (`equipo_idASC) ,
  
CONSTRAINT `fk_equipos`
    
FOREIGN KEY (`equipo_id` )
    
REFERENCES `mydb`.`equipos` (`id` )
    
ON DELETE NO ACTION
    ON UPDATE NO ACTION
)
ENGINE InnoDB
  #2 (permalink)  
Antiguo 18/08/2012, 17:10
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 150 mysql

En esencia, ese error indica que hay alguna constraint que no se está cumpliendo, pero el CREATE TABLE que pones es insuficiente para saber cuál es.
Buen podría ser:
- Un problema de tipos de campos en las FK respecto de los campos de sus PK de origen.
- Alguna tabla base no exista aún.
- Nombres de constraint incompatibles o solapados.
- otros...

Puede que necesitemos conocer también la estructura de las otras tablas invocadas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 19/08/2012, 01:01
 
Fecha de Ingreso: febrero-2011
Ubicación: Madrid
Mensajes: 62
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: error 150 mysql

Ok.
De las tablas que tengo voy a coger unas pocas.

Tenemos 'equipos', que se relaciona entre otros con 'estadios','trofeos','entrenadores'.

Ahora bien, cuando lanzo el sql para crear la bbdd, falla en entrenadores, y en estadios y trofeos no falla, ya que se ha cargado bien.

Con esto quiero dar a entender(obviando el error que no sé donde está ), que estadios y trofeos a mi parecer son iguales a entrenadores, pero con la diferencia de que entrenadores no se carga, da error 150.

Innodb en las tablas, tipo de datos igual, aparentemente no tengo error de sintaxis...

Aquí las tablas: equipos, estadios, trofeos y entrenadores.

Código PHP:
-- -----------------------------------------------------
-- 
Table `mydb`.`equipos`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`equipos` (
  `
idCHAR(36NOT NULL ,
  `
nombreVARCHAR(255NULL ,
  `
anyo_fundadoDATETIME NULL ,
  `
presidenteVARCHAR(255NULL ,
  `
entrenadorVARCHAR(255NULL ,
  `
patrocinadorVARCHAR(255NULL ,
  `
webVARCHAR(255NULL ,
  `
createdDATETIME NULL ,
  `
modifiedDATETIME NULL ,
  `
liga_idCHAR(36NOT NULL ,
  
PRIMARY KEY (`id`) ,
  
INDEX `fk_ligas_liga_id` (`liga_idASC) ,
  
CONSTRAINT `fk_ligas_liga_id`
    
FOREIGN KEY (`liga_id` )
    
REFERENCES `mydb`.`ligas` (`id` )
    
ON DELETE NO ACTION
    ON UPDATE NO ACTION
)
ENGINE InnoDB;


-- -----------------------------------------------------
-- 
Table `mydb`.`estadios`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`estadios` (
  `
idCHAR(36NOT NULL ,
  `
nombreVARCHAR(255NULL ,
  `
capacidadINT NULL ,
  `
dimensionVARCHAR(255NULL ,
  `
ciudadVARCHAR(255NULL ,
  `
anyo_aperturaDATETIME NULL ,
  `
createdDATETIME NULL ,
  `
modifiedDATETIME NULL ,
  `
equipo_idCHAR(36NOT NULL ,
  
PRIMARY KEY (`id`) ,
  
INDEX `fk_equipos_equipo_id` (`equipo_idASC) ,
  
CONSTRAINT `fk_equipos_equipo_id`
    
FOREIGN KEY (`equipo_id` )
    
REFERENCES `mydb`.`equipos` (`id` )
    
ON DELETE NO ACTION
    ON UPDATE NO ACTION
)
ENGINE InnoDB;


-- -----------------------------------------------------
-- 
Table `mydb`.`trofeos`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`trofeos` (
  `
idCHAR(36NOT NULL ,
  `
champion_leagueINT NULL ,
  `
uefaINT NULL ,
  `
copa_del_reyINT NULL ,
  `
copa_intercontinentalINT NULL ,
  `
super_copa_espanaINT NULL ,
  `
super_copa_europaINT NULL ,
  `
mundial_club_fifaINT NULL ,
  `
createdDATETIME NULL ,
  `
modifiedDATETIME NULL ,
  `
equipo_idCHAR(36NOT NULL ,
  
INDEX `fk_equipos_equipo_id` (`equipo_idASC) ,
  
PRIMARY KEY (`id`) ,
  
CONSTRAINT `fk_equipos_equipo_id`
    
FOREIGN KEY (`equipo_id` )
    
REFERENCES `mydb`.`equipos` (`id` )
    
ON DELETE NO ACTION
    ON UPDATE NO ACTION
)
ENGINE InnoDB;


-- -----------------------------------------------------
-- 
Table `mydb`.`entrenadores`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`entrenadores` (
  `
idCHAR(36NOT NULL ,
  `
nombreVARCHAR(255NULL ,
  `
anyo_nacimientoDATETIME NULL ,
  `
nacionalidadVARCHAR(255NULL ,
  `
club_actualVARCHAR(255NULL ,
  `
club_anteriorVARCHAR(255NULL ,
  `
anyo_debutDATETIME NULL ,
  `
club_debutVARCHAR(255NULL ,
  `
createdDATETIME NULL ,
  `
modifiedDATETIME NULL ,
  `
equipo_idCHAR(36NOT NULL ,
  
PRIMARY KEY (`id`) ,
  
INDEX `fk_equipos_equipo_id` (`equipo_idASC) ,
  
CONSTRAINT `fk_equipos_equipo_id`
    
FOREIGN KEY (`equipo_id` )
    
REFERENCES `mydb`.`equipos` (`id` )
    
ON DELETE NO ACTION
    ON UPDATE NO ACTION
)
ENGINE InnoDB
  #4 (permalink)  
Antiguo 19/08/2012, 01:08
 
Fecha de Ingreso: febrero-2011
Ubicación: Madrid
Mensajes: 62
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: error 150 mysql

Vale, todo solucionado, error tonto por mi parte.

Tenía el mismo nombre para los CONSTRAINT, cosa que no se puede, a sido cambiarlo y importarse correctamente.

Gracias.
  #5 (permalink)  
Antiguo 19/08/2012, 07:52
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 150 mysql

Esa era justamente la tercera posibilidad que te mencionaba...
__________________
¿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: 150, tabla
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 03:04.