Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/01/2012, 06:49
Avatar de oscarsb1988
oscarsb1988
 
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años
Puntos: 0
Error 1280: Incorrect index name.

Saludos:

Llevo ya bastantes días intentando solventar este error, y he terminado por darme por vencido tras realizar múltiples cambios y comprobar que al compilar todo sigue igual.

Código SQL:
Ver original
  1. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
  2. SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
  3. SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
  4.  
  5. DROP SCHEMA IF EXISTS `BDTaller` ;
  6. CREATE SCHEMA IF NOT EXISTS `BDTaller` DEFAULT CHARACTER SET latin1 ;
  7. USE `BDTaller` ;
  8.  
  9. -- -----------------------------------------------------
  10. -- Table `BDTaller`.`Clientes`
  11. -- -----------------------------------------------------
  12. CREATE  TABLE IF NOT EXISTS `BDTaller`.`Clientes` (
  13.   `DNI` VARCHAR(9) NOT NULL ,
  14.   `Nombre` CHAR(45) NOT NULL ,
  15.   `Apellidos` CHAR(45) NOT NULL ,
  16.   `Dirección` VARCHAR(45) NOT NULL ,
  17.   `Teléfono` INT(9) NOT NULL ,
  18.   PRIMARY KEY (`DNI`) )
  19. ENGINE = InnoDB;
  20.  
  21. CREATE UNIQUE INDEX `DNI_UNIQUE` ON `BDTaller`.`Clientes` (`DNI` ASC) ;
  22.  
  23.  
  24. -- -----------------------------------------------------
  25. -- Table `BDTaller`.`Operarios`
  26. -- -----------------------------------------------------
  27. CREATE  TABLE IF NOT EXISTS `BDTaller`.`Operarios` (
  28.   `idOperarios` INT NOT NULL ,
  29.   `Nombre` CHAR(45) NOT NULL ,
  30.   `Apellidos` CHAR(45) NOT NULL ,
  31.   `Dirección` VARCHAR(45) NOT NULL ,
  32.   `Teléfono` INT(9) NOT NULL ,
  33.   PRIMARY KEY (`idOperarios`) )
  34. ENGINE = InnoDB;
  35.  
  36. CREATE UNIQUE INDEX `idOperarios_UNIQUE` ON `BDTaller`.`Operarios` (`idOperarios` ASC) ;
  37.  
  38. CREATE UNIQUE INDEX `Teléfono_UNIQUE` ON `BDTaller`.`Operarios` (`Teléfono` ASC) ;
  39.  
  40.  
  41. -- -----------------------------------------------------
  42. -- Table `BDTaller`.`Coches`
  43. -- -----------------------------------------------------
  44. CREATE  TABLE IF NOT EXISTS `BDTaller`.`Coches` (
  45.   `Matrícula` VARCHAR(20) NOT NULL ,
  46.   `Marca` VARCHAR(45) NOT NULL ,
  47.   `Modelo` VARCHAR(45) NOT NULL ,
  48.   `Fecha_Inicio` DATE NOT NULL ,
  49.   `Fecha_Fin` DATE NULL ,
  50.   `Motivo` VARCHAR(254) NOT NULL ,
  51.   `Finalizado` TINYINT(1) NOT NULL ,
  52.   `DNI` VARCHAR(9) NOT NULL ,
  53.   `idOperarios` INT NOT NULL ,
  54.   PRIMARY KEY (`Matrícula`) ,
  55.   CONSTRAINT `DNI`
  56.     FOREIGN KEY (`DNI` )
  57.     REFERENCES `BDTaller`.`Clientes` (`DNI` )
  58.     ON DELETE NO ACTION
  59.     ON UPDATE NO ACTION,
  60.   CONSTRAINT `idOperarios`
  61.     FOREIGN KEY (`idOperarios` )
  62.     REFERENCES `BDTaller`.`Operarios` (`idOperarios` )
  63.     ON DELETE NO ACTION
  64.     ON UPDATE NO ACTION)
  65. ENGINE = InnoDB;
  66.  
  67. CREATE UNIQUE INDEX `Matrícula_UNIQUE` ON `BDTaller`.`Coches` (`Matrícula` ASC) ;
  68.  
  69. CREATE INDEX `DNI` ON `BDTaller`.`Coches` (`DNI` ASC) ;
  70.  
  71. CREATE INDEX `idOperarios` ON `BDTaller`.`Coches` (`idOperarios` ASC) ;
  72.  
  73.  
  74. -- -----------------------------------------------------
  75. -- Table `BDTaller`.`Facturas`
  76. -- -----------------------------------------------------
  77. CREATE  TABLE IF NOT EXISTS `BDTaller`.`Facturas` (
  78.   `idFacturas` INT NOT NULL ,
  79.   `Precio` DOUBLE NOT NULL ,
  80.   `DNI` VARCHAR(9) NOT NULL ,
  81.   `IdOperarios` INT NOT NULL ,
  82.   `Matrícula` VARCHAR(20) NOT NULL ,
  83.   PRIMARY KEY (`idFacturas`) )
  84. ENGINE = InnoDB;
  85.  
  86. CREATE UNIQUE INDEX `idFacturas_UNIQUE` ON `BDTaller`.`Facturas` (`idFacturas` ASC) ;
  87.  
  88.  
  89. -- -----------------------------------------------------
  90. -- Table `BDTaller`.`Proveedores`
  91. -- -----------------------------------------------------
  92. CREATE  TABLE IF NOT EXISTS `BDTaller`.`Proveedores` (
  93.   `idProveedor` INT NOT NULL AUTO_INCREMENT ,
  94.   `Nombre` VARCHAR(45) NOT NULL ,
  95.   `Dirección` VARCHAR(45) NOT NULL ,
  96.   `Teléfono` INT(9) NOT NULL ,
  97.   PRIMARY KEY (`idProveedor`) )
  98. ENGINE = InnoDB;
  99.  
  100. CREATE UNIQUE INDEX `idProveedor_UNIQUE` ON `BDTaller`.`Proveedores` (`idProveedor` ASC) ;
  101.  
  102. CREATE UNIQUE INDEX `Teléfono_UNIQUE` ON `BDTaller`.`Proveedores` (`Teléfono` ASC) ;
  103.  
  104.  
  105. -- -----------------------------------------------------
  106. -- Table `BDTaller`.`Almacenes`
  107. -- -----------------------------------------------------
  108. CREATE  TABLE IF NOT EXISTS `BDTaller`.`Almacenes` (
  109.   `idAlmacenes` INT NOT NULL ,
  110.   `Nombre` CHAR(45) NULL ,
  111.   PRIMARY KEY (`idAlmacenes`) )
  112. ENGINE = InnoDB;
  113.  
  114.  
  115. -- -----------------------------------------------------
  116. -- Table `BDTaller`.`Productos`
  117. -- -----------------------------------------------------
  118. CREATE  TABLE IF NOT EXISTS `BDTaller`.`Productos` (
  119.   `idProductos` INT NOT NULL AUTO_INCREMENT ,
  120.   `Nombre` CHAR(45) NOT NULL ,
  121.   `Precio` DOUBLE NOT NULL ,
  122.   `Unidades` INT NOT NULL ,
  123.   `idProveedor` INT NOT NULL ,
  124.   `idAlmacenes` INT NOT NULL ,
  125.   PRIMARY KEY (`idProductos`) ,
  126.   CONSTRAINT `idProveedor`
  127.     FOREIGN KEY (`idProveedor` )
  128.     REFERENCES `BDTaller`.`Proveedores` (`idProveedor` )
  129.     ON DELETE NO ACTION
  130.     ON UPDATE NO ACTION,
  131.   CONSTRAINT `idAlmacenes`
  132.     FOREIGN KEY (`idAlmacenes` )
  133.     REFERENCES `BDTaller`.`Almacenes` (`idAlmacenes` )
  134.     ON DELETE NO ACTION
  135.     ON UPDATE NO ACTION)
  136. ENGINE = InnoDB;
  137.  
  138. CREATE UNIQUE INDEX `idProductos_UNIQUE` ON `BDTaller`.`Productos` (`idProductos` ASC) ;
  139.  
  140. CREATE INDEX `idProveedor` ON `BDTaller`.`Productos` (`idProveedor` ASC) ;
  141.  
  142. CREATE INDEX `idAlmacenes` ON `BDTaller`.`Productos` (`idAlmacenes` ASC) ;
  143.  
  144. SET SQL_MODE=@OLD_SQL_MODE;
  145. SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
  146. SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

El error en cuestión me los da en todas las líneas referentes a la llave foránea:
  • CREATE INDEX `DNI` ON `BDTaller`.`Coches` (`DNI` ASC) ;

Estoy trabajando con MySQL WorkBench.

Gracias