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

Problema con la importacion de una bbdd

Estas en el tema de Problema con la importacion de una bbdd en el foro de Mysql en Foros del Web. Hola, estoy tratando de importar un tabla con phpmyadmin que he creado en mysql workbench, al importarla me da un error, aquí expongo la tabla ...
  #1 (permalink)  
Antiguo 19/05/2011, 14:38
 
Fecha de Ingreso: septiembre-2010
Mensajes: 4
Antigüedad: 13 años, 7 meses
Puntos: 0
Problema con la importacion de una bbdd

Hola, estoy tratando de importar un tabla con phpmyadmin que he creado en mysql workbench, al importarla me da un error, aquí expongo la tabla y despues el error:


SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
USE `mydb` ;

-- -----------------------------------------------------
-- Table `mydb`.`usuarios`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`usuarios` (
`idusuario` VARCHAR(50) NOT NULL ,
`pass` VARCHAR(45) NOT NULL ,
`correo` VARCHAR(100) NULL ,
`fecha_entrada` DATETIME NOT NULL ,
`post_totales` INT NULL ,
`ultimo_post` VARCHAR(150) NULL ,
`fecha_ult_post` DATETIME NULL ,
PRIMARY KEY (`idusuario`, `pass`) ,
UNIQUE INDEX `idusuario_UNIQUE` (`idusuario` ASC) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`temas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`temas` (
`idtema` VARCHAR(80) NOT NULL ,
`idsubtema` VARCHAR(80) NOT NULL ,
`desc_tema` VARCHAR(150) NULL ,
PRIMARY KEY (`idtema`, `idsubtema`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`respuestas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`respuestas` (
`idrespuesta` VARCHAR(80) NOT NULL ,
`contenido_resp` VARCHAR(250) NULL ,
`fecha_respuesta` DATETIME NULL ,
`idusuario` VARCHAR(50) NULL ,
`idtema` VARCHAR(80) NULL ,
`idsubtema` VARCHAR(80) NULL ,
PRIMARY KEY (`idrespuesta`) ,
INDEX `idusuario` (`idusuario` ASC) ,
INDEX `idtema` (`idtema` ASC) ,
INDEX `idsubtema` (`idsubtema` ASC) ,
CONSTRAINT `idusuario`
FOREIGN KEY (`idusuario` )
REFERENCES `mydb`.`usuarios` (`idusuario` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `idtema`
FOREIGN KEY (`idtema` )
REFERENCES `mydb`.`temas` (`idtema` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `idsubtema`
FOREIGN KEY (`idsubtema` )
REFERENCES `mydb`.`temas` (`idsubtema` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`subtemas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`subtemas` (
`idsubtema` VARCHAR(80) NOT NULL ,
`contenido` LONGBLOB NOT NULL ,
`idrespuesta` VARCHAR(80) NOT NULL ,
`idtema` VARCHAR(45) NULL ,
`idusuario` VARCHAR(50) NULL ,
PRIMARY KEY (`idsubtema`) ,
INDEX `idrespuesta` (`idrespuesta` ASC) ,
INDEX `idusuario` (`idusuario` ASC) ,
INDEX `idtema` (`idtema` ASC) ,
CONSTRAINT `idrespuesta`
FOREIGN KEY (`idrespuesta` )
REFERENCES `mydb`.`respuestas` (`idrespuesta` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `idusuario`
FOREIGN KEY (`idusuario` )
REFERENCES `mydb`.`usuarios` (`idusuario` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `idtema`
FOREIGN KEY (`idtema` )
REFERENCES `mydb`.`temas` (`idtema` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;



el error que me da al crealo es este:


Error
consulta SQL:

-- ----------------------------------------------------- -- Table `mydb`.`respuestas` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `mydb`.`respuestas` ( `idrespuesta` VARCHAR(80) NOT NULL , `contenido_resp` VARCHAR(250) NULL , `fecha_respuesta` DATETIME NULL , `idusuario` VARCHAR(50) NULL , `idtema` VARCHAR(80) NULL , `idsubtema` VARCHAR(80) NULL , PRIMARY KEY (`idrespuesta`) , INDEX `idusuario` (`idusuario` ASC) , INDEX `idtema` (`idtema` ASC) , INDEX `idsubtema` (`idsubtema` ASC) , CONSTRAINT `idusuario` FOREIGN KEY (`idusuario` ) REFERENCES `mydb`.`usuarios` (`idusuario` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `idtema` FOREIGN KEY (`idtema` ) REFERENCES `mydb`.`temas` (`idtema` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `idsubtema` FOREIGN KEY (`idsubtema` ) REFERENCES `mydb`.`temas` (`idsubtema` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGI[...]

MySQL ha dicho:

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



CREATE USER `admin` IDENTIFIED BY 'admin';


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;


si alquien me puede echar una mano, ya he mirado bastantes temas y creo que está bien.
  #2 (permalink)  
Antiguo 19/05/2011, 16:37
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, 5 meses
Puntos: 2658
Respuesta: Problema con la importacion de una bbdd

Las FK están mal definidas, y posiblemente también las PK de las tablas referidas.
Una FK debe apuntar a toda la PK original y no a una parte de ella. Si la PK de referencia está constituida por más de un campo, la FK está compuesta por la misma cantidad de campos, del mismo tipo y en el mismo orden, y la definición se debe hacer en el grupo de campos, tal y como la PK de origen fue definida.
En esencia, la estructura de la base está mal diseñada y las relaciones mal creadas.
__________________
¿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: bbdd, importacion
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 23:05.