Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/05/2015, 11:45
sam03
 
Fecha de Ingreso: febrero-2014
Mensajes: 69
Antigüedad: 10 años, 2 meses
Puntos: 0
Error 1022: Can't write; duplicate key al hacer Forward Engineering MySQL WorkBench

Hola al hacer, Forward Engineering me devuelve este error, el cual no entiendo porque en la tabla tbl_producto solo tengo una llave

Código MySQL:
Ver original
  1. Executing SQL script in server
  2. ERROR: Error 1022: Can't write; duplicate key in table 'tbl_producto'
  3. SQL Code:
  4.        -- -----------------------------------------------------
  5.        -- Table `mydb`.`tbl_producto`
  6.        -- -----------------------------------------------------
  7.        CREATE TABLE IF NOT EXISTS `mydb`.`tbl_producto` (
  8.          `id_producto` INT NOT NULL AUTO_INCREMENT,
  9.          `id_laboratorio` INT NOT NULL,
  10.          `nombre_producto` VARCHAR(30) NOT NULL,
  11.          `numero_registro` VARCHAR(45) NOT NULL,
  12.          `fecha_renovacion` VARCHAR(45) NOT NULL,
  13.          PRIMARY KEY (`id_producto`),
  14.          INDEX `id_laboratorio_idx` (`id_laboratorio` ASC),
  15.          CONSTRAINT `id_laboratorio`
  16.            FOREIGN KEY (`id_laboratorio`)
  17.            REFERENCES `mydb`.`tbl_laboratorio` (`id_laboratorio`)
  18.            ON DELETE NO ACTION
  19.            ON UPDATE NO ACTION)
  20.        ENGINE = InnoDB
  21.  
  22. SQL script execution finished: statements: 10 succeeded, 1 failed
  23.  
  24. Fetching back view definitions in final form.
  25. Nothing to fetch


Este es mi script

Código MySQL:
Ver original
  1. -- MySQL Workbench Forward Engineering
  2.  
  3. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
  4. SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
  5. SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
  6.  
  7. -- -----------------------------------------------------
  8. -- Schema mydb
  9. -- -----------------------------------------------------
  10.  
  11. -- -----------------------------------------------------
  12. -- Schema mydb
  13. -- -----------------------------------------------------
  14. CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
  15. USE `mydb` ;
  16.  
  17. -- -----------------------------------------------------
  18. -- Table `mydb`.`tbl_estado`
  19. -- -----------------------------------------------------
  20. CREATE TABLE IF NOT EXISTS `mydb`.`tbl_estado` (
  21.   `id_estado` INT NOT NULL AUTO_INCREMENT,
  22.   `nombre_estado` VARCHAR(20) NOT NULL,
  23.   `descripcion` VARCHAR(45) NULL,
  24.   PRIMARY KEY (`id_estado`))
  25.  
  26.  
  27. -- -----------------------------------------------------
  28. -- Table `mydb`.`tbl_laboratorio`
  29. -- -----------------------------------------------------
  30. CREATE TABLE IF NOT EXISTS `mydb`.`tbl_laboratorio` (
  31.   `id_laboratorio` INT NOT NULL AUTO_INCREMENT,
  32.   `nombre_laboratorio` VARCHAR(45) NOT NULL,
  33.   `telefono_1` CHAR(15) NULL,
  34.   `telefono_2` CHAR(15) NULL,
  35.   `telefono_3` CHAR(15) NULL,
  36.   `descripcion` VARCHAR(45) NULL,
  37.   `direccion` VARCHAR(45) NOT NULL,
  38.   PRIMARY KEY (`id_laboratorio`, `direccion`),
  39.   UNIQUE INDEX `nombre_laboratorio_UNIQUE` (`nombre_laboratorio` ASC))
  40.  
  41.  
  42. -- -----------------------------------------------------
  43. -- Table `mydb`.`tbl_registro`
  44. -- -----------------------------------------------------
  45. CREATE TABLE IF NOT EXISTS `mydb`.`tbl_registro` (
  46.   `id_registro` INT NOT NULL AUTO_INCREMENT,
  47.   `id_laboratorio` INT NOT NULL,
  48.   `nombre_producto` INT NOT NULL,
  49.   `numero_pdf` VARCHAR(45) NOT NULL,
  50.   `numero_registro` VARCHAR(45) NULL,
  51.   `fecha_renovacion` DATE NOT NULL,
  52.   `observacion` TEXT(5000) NULL,
  53.   `fecha_envio_escaneo` DATE NOT NULL,
  54.   `numero_resolucion` VARCHAR(45) NOT NULL,
  55.   `id_estado` INT NOT NULL,
  56.   PRIMARY KEY (`id_registro`),
  57.   UNIQUE INDEX `numero_registro_UNIQUE` (`numero_registro` ASC),
  58.   UNIQUE INDEX `numero_resolucion_UNIQUE` (`numero_resolucion` ASC),
  59.   INDEX `id_laboratorio_idx` (`id_laboratorio` ASC),
  60.   INDEX `id_estado_idx` (`id_estado` ASC),
  61.   CONSTRAINT `id_laboratorio`
  62.     FOREIGN KEY (`id_laboratorio`)
  63.     REFERENCES `mydb`.`tbl_laboratorio` (`id_laboratorio`)
  64.   CONSTRAINT `id_estado`
  65.     FOREIGN KEY (`id_estado`)
  66.     REFERENCES `mydb`.`tbl_estado` (`id_estado`)
  67.  
  68.  
  69. -- -----------------------------------------------------
  70. -- Table `mydb`.`id_roles`
  71. -- -----------------------------------------------------
  72. CREATE TABLE IF NOT EXISTS `mydb`.`id_roles` (
  73.   `id_rol` INT NOT NULL AUTO_INCREMENT,
  74.   `nombre_rol` VARCHAR(20) NOT NULL,
  75.   `descripcion` VARCHAR(45) NULL,
  76.   PRIMARY KEY (`id_rol`))
  77.  
  78.  
  79. -- -----------------------------------------------------
  80. -- Table `mydb`.`tbl_usuarios`
  81. -- -----------------------------------------------------
  82. CREATE TABLE IF NOT EXISTS `mydb`.`tbl_usuarios` (
  83.   `id_usuario` INT NOT NULL AUTO_INCREMENT,
  84.   `nombre_usuario` VARCHAR(45) NOT NULL,
  85.   `contrasena` VARCHAR(45) NOT NULL,
  86.   `id_rol` INT NOT NULL,
  87.   PRIMARY KEY (`id_usuario`),
  88.   INDEX `id_rol_idx` (`id_rol` ASC),
  89.   CONSTRAINT `id_rol`
  90.     FOREIGN KEY (`id_rol`)
  91.     REFERENCES `mydb`.`id_roles` (`id_rol`)
  92.  
  93.  
  94. -- -----------------------------------------------------
  95. -- Table `mydb`.`tbl_producto`
  96. -- -----------------------------------------------------
  97. CREATE TABLE IF NOT EXISTS `mydb`.`tbl_producto` (
  98.   `id_producto` INT NOT NULL AUTO_INCREMENT,
  99.   `id_laboratorio` INT NOT NULL,
  100.   `nombre_producto` VARCHAR(30) NOT NULL,
  101.   `numero_registro` VARCHAR(45) NULL,
  102.   `fecha_renovacion` VARCHAR(45) NULL,
  103.   PRIMARY KEY (`id_producto`),
  104.   INDEX `id_laboratorio_idx` (`id_laboratorio` ASC),
  105.   CONSTRAINT `id_laboratorio`
  106.     FOREIGN KEY (`id_laboratorio`)
  107.     REFERENCES `mydb`.`tbl_laboratorio` (`id_laboratorio`)
  108.  
  109.  
  110. -- -----------------------------------------------------
  111. -- Table `mydb`.`tbl_tramite`
  112. -- -----------------------------------------------------
  113. CREATE TABLE IF NOT EXISTS `mydb`.`tbl_tramite` (
  114.   `id_tramite` INT NOT NULL AUTO_INCREMENT,
  115.   `nombre_tramite` VARCHAR(45) NOT NULL,
  116.   `decripcion` VARCHAR(45) NULL,
  117.   PRIMARY KEY (`id_tramite`))
  118.  
  119.  
  120. -- -----------------------------------------------------
  121. -- Table `mydb`.`tbl_actualizacion`
  122. -- -----------------------------------------------------
  123. CREATE TABLE IF NOT EXISTS `mydb`.`tbl_actualizacion` (
  124.   `id_actualizacion` INT NOT NULL AUTO_INCREMENT,
  125.   `id_producto` INT NOT NULL,
  126.   `numero_registo` VARCHAR(45) NOT NULL,
  127.   `id_tramite` INT NOT NULL,
  128.   `estimado_de_finalizacion` VARCHAR(45) NOT NULL,
  129.   `fecha_envio_escaneado` DATE NULL,
  130.   `numero_formulario` VARCHAR(45) NOT NULL,
  131.   `id_estado` INT NOT NULL,
  132.   PRIMARY KEY (`id_actualizacion`),
  133.   INDEX `id_producto_idx` (`id_producto` ASC),
  134.   INDEX `id_tramite_idx` (`id_tramite` ASC),
  135.   INDEX `id_estado_idx` (`id_estado` ASC),
  136.   CONSTRAINT `id_producto`
  137.     FOREIGN KEY (`id_producto`)
  138.     REFERENCES `mydb`.`tbl_producto` (`id_producto`)
  139.   CONSTRAINT `id_tramite`
  140.     FOREIGN KEY (`id_tramite`)
  141.     REFERENCES `mydb`.`tbl_tramite` (`id_tramite`)
  142.   CONSTRAINT `id_estado`
  143.     FOREIGN KEY (`id_estado`)
  144.     REFERENCES `mydb`.`tbl_estado` (`id_estado`)
  145.  
  146.  
  147. -- -----------------------------------------------------
  148. -- Table `mydb`.`tbl_renovacion`
  149. -- -----------------------------------------------------
  150. CREATE TABLE IF NOT EXISTS `mydb`.`tbl_renovacion` (
  151.   `id_renovacion` INT NOT NULL AUTO_INCREMENT,
  152.   `id_producto` INT NOT NULL,
  153.   `numero_registro` VARCHAR(45) NOT NULL,
  154.   `observacion` VARCHAR(45) NULL,
  155.   `fecha_envio_escaneado` VARCHAR(45) NULL,
  156.   `numero_formulario` VARCHAR(45) NOT NULL,
  157.   `id_estado` INT NOT NULL,
  158.   PRIMARY KEY (`id_renovacion`),
  159.   INDEX `id_producto_idx` (`id_producto` ASC),
  160.   INDEX `id_estado_idx` (`id_estado` ASC),
  161.   CONSTRAINT `id_producto`
  162.     FOREIGN KEY (`id_producto`)
  163.     REFERENCES `mydb`.`tbl_producto` (`id_producto`)
  164.   CONSTRAINT `id_estado`
  165.     FOREIGN KEY (`id_estado`)
  166.     REFERENCES `mydb`.`tbl_estado` (`id_estado`)
  167.  
  168.  
  169. SET SQL_MODE=@OLD_SQL_MODE;
  170. SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
  171. SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;