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

Error #1005 - Can't create table

Estas en el tema de Error #1005 - Can't create table en el foro de Mysql en Foros del Web. Hola he revisado todo y no he podido encontrar donde está el error esta son las tablas, por favor necesito esta ayuda porque me sale ...
  #1 (permalink)  
Antiguo 28/06/2010, 11:10
 
Fecha de Ingreso: agosto-2007
Mensajes: 50
Antigüedad: 16 años, 8 meses
Puntos: 0
Error #1005 - Can't create table

Hola he revisado todo y no he podido encontrar donde está el error esta son las tablas, por favor necesito esta ayuda porque me sale el error:
#1005 - Can't create table '.\sistema\bienestar_extra.frm' (errno: 150)


Código:
CREATE  TABLE IF NOT EXISTS `sistema`.`estudiantes` (
  `id_numero` VARCHAR(45) NOT NULL ,
  `id_uni` VARCHAR(15) NOT NULL ,
  `programa` VARCHAR(100) NOT NULL ,
  `snp` VARCHAR(30) NULL ,
  `horario` VARCHAR(2) NULL ,
  `financiado` VARCHAR(2) NULL ,
  `anio_periodo` VARCHAR(6) NOT NULL ,
  `nivel` VARCHAR(2) NULL ,
  `tipo_est` VARCHAR(40) NULL ,
  `situacion_acad` VARCHAR(40) NULL ,
  `ceres` VARCHAR(200) NULL ,
  PRIMARY KEY (`id_uni`, `programa`, `anio_periodo`, `id_numero`) )
ENGINE = InnoDB
Código:
 CREATE  TABLE IF NOT EXISTS `sistema`.`bienestar_extra` (
  `id_uni` VARCHAR(15) NOT NULL ,
  `nota_1` FLOAT NOT NULL DEFAULT 0 ,
  `nota_2` FLOAT NOT NULL DEFAULT 0 ,
  `nota_3` FLOAT NOT NULL DEFAULT 0 ,
  `n_definitiva` FLOAT NOT NULL DEFAULT 0 ,
  `programa` VARCHAR(100) NOT NULL ,
  `telefono` VARCHAR(20) NULL ,
  `email` VARCHAR(100) NULL ,
  `anio_periodo` VARCHAR(6) NOT NULL ,
  `f_matricula` DATE NULL ,
  `extracurricular` VARCHAR(70) NULL ,
  `retirado` VARCHAR(2) NULL ,
  `sede` VARCHAR(30) NULL ,
  PRIMARY KEY (`id_uni`, `anio_periodo`, `programa`) ,
  INDEX `fk_bienestar_extra_estudiantes` (`id_uni` ASC, `programa` ASC, `anio_periodo` ASC) ,
  CONSTRAINT `fk_bienestar_extra_estudiantes`
    FOREIGN KEY (`id_uni` , `programa` , `anio_periodo` )
    REFERENCES `sistema`.`estudiantes` (`id_uni` , `programa` , `anio_periodo` )
    ON DELETE NO ACTION
    ON UPDATE CASCADE)
ENGINE = InnoDB
  #2 (permalink)  
Antiguo 28/06/2010, 11: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 #1005 - Can't create table

La PK a la que la FK pretende apuntar tiene cuatro (4) campos y la FK sólo tres (3).
Una FK debe referir a toda la PK y no a una parte de ella.
__________________
¿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 28/06/2010, 12:06
 
Fecha de Ingreso: agosto-2007
Mensajes: 50
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Error #1005 - Can't create table

Ya realizé con las 4 llaves pero aun me sigue saliendo el mismo error :S puedes probar los codigos para que veas
  #4 (permalink)  
Antiguo 28/06/2010, 12:10
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Error #1005 - Can't create table

dbzsoft postea nuevamente el codigo y miramos que puede estar pasando.


saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 28/06/2010, 12:15
 
Fecha de Ingreso: agosto-2007
Mensajes: 50
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Error #1005 - Can't create table

Aqui esta el codigo con las 4 llaves:

Código:
 CREATE  TABLE IF NOT EXISTS `sistema`.`estudiantes` (
  `id_numero` VARCHAR(45) NOT NULL ,
  `id_uni` VARCHAR(15) NOT NULL ,
  `programa` VARCHAR(100) NOT NULL ,
  `snp` VARCHAR(30) NULL ,
  `horario` VARCHAR(2) NULL ,
  `financiado` VARCHAR(2) NULL ,
  `anio_periodo` VARCHAR(6) NOT NULL ,
  `nivel` VARCHAR(2) NULL ,
  `tipo_est` VARCHAR(40) NULL ,
  `situacion_acad` VARCHAR(40) NULL ,
  `ceres` VARCHAR(200) NULL ,
  PRIMARY KEY (`id_uni`, `programa`, `anio_periodo`, `id_numero`) )
ENGINE = InnoDB
Código:
 CREATE  TABLE IF NOT EXISTS `sistema`.`bienestar_extra` (
  `id_numero` VARCHAR(45) NOT NULL ,
  `id_uni` VARCHAR(15) NOT NULL ,
  `nota1` FLOAT NOT NULL DEFAULT 0 ,
  `nota2` FLOAT NOT NULL DEFAULT 0 ,
  `nota3` FLOAT NOT NULL DEFAULT 0 ,
  `n_definitiva` FLOAT NOT NULL DEFAULT 0 ,
  `programa` VARCHAR(100) NOT NULL ,
  `telefono` VARCHAR(20) NULL ,
  `email` VARCHAR(100) NULL ,
  `anio_periodo` VARCHAR(6) NOT NULL ,
  `f_matricula` DATE NULL ,
  `extracurricular` VARCHAR(70) NULL ,
  `retirado` VARCHAR(2) NULL ,
  `sede` VARCHAR(30) NULL ,
  PRIMARY KEY (`id_uni`, `anio_periodo`, `programa`, `id_numero`) ,
  INDEX `fk_bienestar_extra_estudiantes` (`id_uni` ASC, `programa` ASC, `anio_periodo` ASC, `id_numero` ASC) ,
  CONSTRAINT `fk_bienestar_extra_estudiantes`
    FOREIGN KEY (`id_uni` , `programa` , `anio_periodo` , `id_numero` )
    REFERENCES `sistema`.`estudiantes` (`id_uni` , `programa` , `anio_periodo` , `id_numero` )
    ON DELETE NO ACTION
    ON UPDATE CASCADE)
ENGINE = InnoDB
  #6 (permalink)  
Antiguo 28/06/2010, 12:26
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 #1005 - Can't create table

No hay errores visibles en los scripts, salvo que carecen de delimitador de sentencia...
Código MySQL:
Ver original
  1. DROP TABLE IF EXISTS `estudiantes`;
  2.  
  3. CREATE TABLE  `estudiantes` (
  4.   `id_numero` varchar(45) NOT NULL,
  5.   `id_uni` varchar(15) NOT NULL,
  6.   `programa` varchar(100) NOT NULL,
  7.   `snp` varchar(30) default NULL,
  8.   `horario` varchar(2) default NULL,
  9.   `financiado` varchar(2) default NULL,
  10.   `anio_periodo` varchar(6) NOT NULL,
  11.   `nivel` varchar(2) default NULL,
  12.   `tipo_est` varchar(40) default NULL,
  13.   `situacion_acad` varchar(40) default NULL,
  14.   `ceres` varchar(200) default NULL,
  15.   PRIMARY KEY  (`id_uni`,`programa`,`anio_periodo`,`id_numero`)
  16.  
  17. DROP TABLE IF EXISTS `bienestar_extra`;
  18.  
  19. CREATE TABLE  `bienestar_extra` (
  20.   `id_numero` varchar(45) NOT NULL,
  21.   `id_uni` varchar(15) NOT NULL,
  22.   `nota1` float NOT NULL default '0',
  23.   `nota2` float NOT NULL default '0',
  24.   `nota3` float NOT NULL default '0',
  25.   `n_definitiva` float NOT NULL default '0',
  26.   `programa` varchar(100) NOT NULL,
  27.   `telefono` varchar(20) default NULL,
  28.   `email` varchar(100) default NULL,
  29.   `anio_periodo` varchar(6) NOT NULL,
  30.   `f_matricula` date default NULL,
  31.   `extracurricular` varchar(70) default NULL,
  32.   `retirado` varchar(2) default NULL,
  33.   `sede` varchar(30) default NULL,
  34.   PRIMARY KEY  (`id_uni`,`anio_periodo`,`programa`,`id_numero`),
  35.   KEY `fk_bienestar_extra_estudiantes` (`id_uni`,`programa`,`anio_periodo`,`id_numero`),
  36.   CONSTRAINT `fk_bienestar_extra_estudiantes`
  37.   FOREIGN KEY (`id_uni`, `programa`, `anio_periodo`, `id_numero`)
  38.   REFERENCES `estudiantes` (`id_uni`, `programa`, `anio_periodo`, `id_numero`) ON DELETE NO ACTION ON UPDATE CASCADE
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 28/06/2010, 12:55
 
Fecha de Ingreso: agosto-2007
Mensajes: 50
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Error #1005 - Can't create table

mmmm que cosa rara con tu codigo si me funcionó y pegué el mio nuevamente despues de eso y tambien funciono :S que raro....

Muchas gracias gnzsoloyo... alguna cosa vualvo y escribo

Etiquetas: create, 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 17:18.