sql >> Base de Datos >  >> Database Tools >> MySQL Workbench

error 1215 MYSQL No se puede agregar una restricción de clave externa,

Si se trata de tablas nuevas sin valores, parece un error con las columnas

uno tiene un varchar(25) el otro un var_char(45) hazlos iguales

editar:

CREATE  TABLE IF NOT EXISTS `biblioteca`.`libro` (
  `isbn` VARCHAR(45) NOT NULL ,
  `idcategoria` INT(11) NOT NULL ,
  `ideditorial` INT(11) NOT NULL ,
  `titulo` VARCHAR(45) NOT NULL ,
  `autor` VARCHAR(45) NOT NULL ,
  `reseña` VARCHAR(45) NULL ,
  PRIMARY KEY (`isbn`) ,
  INDEX `fk_libro2_idx` (`idcategoria` ASC) ,
  INDEX `fk_libro3_idx` (`ideditorial` ASC) )

ENGINE = INNODB
DEFAULT CHARACTER SET = utf8;



CREATE  TABLE IF NOT EXISTS `biblioteca`.`ejemplar` (

  `idejemplar` INT(11) NOT NULL AUTO_INCREMENT ,

  `estado` VARCHAR(45) NOT NULL ,

  `comentario` VARCHAR(45) NULL ,

  `isbn` VARCHAR(45) NOT NULL ,

  PRIMARY KEY (`idejemplar`) ,

  INDEX `fk_ejemplar_libro1_idx` (`isbn` ASC) ,

  CONSTRAINT `fk_ejemplar_libro1`

    FOREIGN KEY (`isbn` )

    REFERENCES `biblioteca`.`libro` (`isbn` )

    ON DELETE NO ACTION

    ON UPDATE NO ACTION)

ENGINE = INNODB

DEFAULT CHARACTER SET = utf8;

funciona sin problema para mí. He quitado las otras 2 claves para las que no tengo esquemas