Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/05/2013, 10:51
mandygr87
 
Fecha de Ingreso: abril-2013
Mensajes: 82
Antigüedad: 11 años
Puntos: 0
¿Dónde está el error?

Hola, tengo un script de creación generado con Mysql workbench. Al pasarlo por Mysql administrator me da error 1005 que según he leído es porque hay alguna foreign key incorrecta, pero no consigo encontrarlo. Pego aqui el script por si alguien me puede ayudar

Código MySQL:
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. CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
  6. USE `mydb`;
  7.  
  8. -- -----------------------------------------------------
  9. -- Table `mydb`.`usuario`
  10. -- -----------------------------------------------------
  11. DROP TABLE IF EXISTS `mydb`.`usuario` ;
  12.  
  13. CREATE  TABLE IF NOT EXISTS `mydb`.`usuario` (
  14.   `dni` VARCHAR(9) NOT NULL ,
  15.   `nombre` VARCHAR(50) NOT NULL ,
  16.   `apellidos` VARCHAR(80) NOT NULL ,
  17.   `password` VARCHAR(25) NOT NULL ,
  18.   `telefono` DECIMAL(10,0) NOT NULL ,
  19.   `email` VARCHAR(45) NOT NULL ,
  20.   `direccion` VARCHAR(100) NOT NULL ,
  21.   `provincia` VARCHAR(45) NOT NULL ,
  22.   `cp` DECIMAL(10,0) NOT NULL ,
  23.   `fechanacimiento` DATE NOT NULL ,
  24.   `rol` VARCHAR(45) NOT NULL ,
  25.   `nss` VARCHAR(20) NULL ,
  26.   `fechaalta` DATE NULL ,
  27.   PRIMARY KEY (`dni`) )
  28.  
  29.  
  30. -- -----------------------------------------------------
  31. -- Table `mydb`.`camping`
  32. -- -----------------------------------------------------
  33. DROP TABLE IF EXISTS `mydb`.`camping` ;
  34.  
  35. CREATE  TABLE IF NOT EXISTS `mydb`.`camping` (
  36.   `idcamping` VARCHAR(9) NOT NULL ,
  37.   `nombre` VARCHAR(100) NOT NULL ,
  38.   `direccion` VARCHAR(150) NOT NULL ,
  39.   `cp` DECIMAL(10,0) NOT NULL ,
  40.   `provincia` VARCHAR(45) NOT NULL ,
  41.   `telefono` DECIMAL(10,0) NOT NULL ,
  42.   `email` VARCHAR(60) NOT NULL ,
  43.   `categoria` INT NOT NULL ,
  44.   PRIMARY KEY (`idcamping`) )
  45.  
  46.  
  47. -- -----------------------------------------------------
  48. -- Table `mydb`.`parcela`
  49. -- -----------------------------------------------------
  50. DROP TABLE IF EXISTS `mydb`.`parcela` ;
  51.  
  52. CREATE  TABLE IF NOT EXISTS `mydb`.`parcela` (
  53.   `idparcela` INT NOT NULL AUTO_INCREMENT ,
  54.   `tamano` INT NOT NULL ,
  55.   `sombra` TINYINT(1) NOT NULL ,
  56.   `precioalta` FLOAT NOT NULL ,
  57.   `preciobaja` FLOAT NOT NULL ,
  58.   `idcamping` VARCHAR(9) NOT NULL ,
  59.   PRIMARY KEY (`idparcela`, `idcamping`) ,
  60.   CONSTRAINT `fk_parcela_camping1`
  61.     FOREIGN KEY (`idcamping` )
  62.     REFERENCES `mydb`.`camping` (`idcamping` )
  63.  
  64. CREATE INDEX `fk_parcela_camping1` ON `mydb`.`parcela` (`idcamping` ASC) ;
  65.  
  66.  
  67. -- -----------------------------------------------------
  68. -- Table `mydb`.`bungalow`
  69. -- -----------------------------------------------------
  70. DROP TABLE IF EXISTS `mydb`.`bungalow` ;
  71.  
  72. CREATE  TABLE IF NOT EXISTS `mydb`.`bungalow` (
  73.   `idbungalow` INT NOT NULL AUTO_INCREMENT ,
  74.   `precioalta ` FLOAT NOT NULL ,
  75.   `preciobaja` FLOAT NOT NULL ,
  76.   `capacidad ` INT NOT NULL ,
  77.   `idcamping` VARCHAR(9) NOT NULL ,
  78.   PRIMARY KEY (`idbungalow`, `idcamping`) ,
  79.   CONSTRAINT `fk_bungalow_camping1`
  80.     FOREIGN KEY (`idcamping` )
  81.     REFERENCES `mydb`.`camping` (`idcamping` )
  82.  
  83. CREATE INDEX `fk_bungalow_camping1` ON `mydb`.`bungalow` (`idcamping` ASC) ;
  84.  
  85.  
  86. -- -----------------------------------------------------
  87. -- Table `mydb`.`actividad`
  88. -- -----------------------------------------------------
  89. DROP TABLE IF EXISTS `mydb`.`actividad` ;
  90.  
  91. CREATE  TABLE IF NOT EXISTS `mydb`.`actividad` (
  92.   `idactividad` VARCHAR(9) NOT NULL ,
  93.   `tipo` VARCHAR(45) NOT NULL ,
  94.   `nombre` VARCHAR(100) NOT NULL ,
  95.   `telefono` DECIMAL(10,0) NOT NULL ,
  96.   `direccion` VARCHAR(150) NOT NULL ,
  97.   `cp` DECIMAL(10,0) NOT NULL ,
  98.   `provincia ` VARCHAR(45) NOT NULL ,
  99.   `email` VARCHAR(60) NOT NULL ,
  100.   PRIMARY KEY (`idactividad`) )
  101.  
  102.  
  103. -- -----------------------------------------------------
  104. -- Table `mydb`.`clase`
  105. -- -----------------------------------------------------
  106. DROP TABLE IF EXISTS `mydb`.`clase` ;
  107.  
  108. CREATE  TABLE IF NOT EXISTS `mydb`.`clase` (
  109.   `idclase` INT NOT NULL AUTO_INCREMENT ,
  110.   `horaentrada` TIME NOT NULL ,
  111.   `duracion ` TIME NOT NULL ,
  112.   `preciobaja` FLOAT NOT NULL ,
  113.   `precioalta` FLOAT NOT NULL ,
  114.   `capacidadpersonas` INT NOT NULL ,
  115.   `diasemana` VARCHAR(45) NOT NULL ,
  116.   `idactividad` VARCHAR(9) NOT NULL ,
  117.   PRIMARY KEY (`idclase`, `idactividad`) ,
  118.   CONSTRAINT `fk_clase_actividad`
  119.     FOREIGN KEY (`idactividad` )
  120.     REFERENCES `mydb`.`actividad` (`idactividad` )
  121.  
  122. CREATE INDEX `fk_clase_actividad` ON `mydb`.`clase` (`idactividad` ASC) ;
  123.  
  124.  
  125. -- -----------------------------------------------------
  126. -- Table `mydb`.`reserva`
  127. -- -----------------------------------------------------
  128. DROP TABLE IF EXISTS `mydb`.`reserva` ;
  129.  
  130. CREATE  TABLE IF NOT EXISTS `mydb`.`reserva` (
  131.   `idreserva` INT NOT NULL AUTO_INCREMENT ,
  132.   `fechasalida` DATE NOT NULL ,
  133.   `fechaentrada` DATE NOT NULL ,
  134.   `numeropersonas` INT NOT NULL ,
  135.   `preciopagado` FLOAT NOT NULL ,
  136.   `preciototal` FLOAT NOT NULL ,
  137.   `estado ` VARCHAR(45) NOT NULL ,
  138.   `fechareserva` VARCHAR(45) NOT NULL ,
  139.   `idparcela` INT NULL ,
  140.   `parcelaidcamping` VARCHAR(9) NULL ,
  141.   `idbungalow` INT NULL ,
  142.   `bungalowidcamping` VARCHAR(9) NULL ,
  143.   `idclase` INT NULL ,
  144.   `idactividad` VARCHAR(9) NULL ,
  145.   `usuario_dni ` VARCHAR(9) NOT NULL ,
  146.   PRIMARY KEY (`idreserva`) ,
  147.   CONSTRAINT `fk_reserva_parcela1`
  148.     FOREIGN KEY (`idparcela` , `parcelaidcamping` )
  149.     REFERENCES `mydb`.`parcela` (`idparcela` , `idcamping` )
  150.   CONSTRAINT `fk_reserva_bungalow1`
  151.     FOREIGN KEY (`idbungalow` , `bungalowidcamping` )
  152.     REFERENCES `mydb`.`bungalow` (`idbungalow` , `idcamping` )
  153.   CONSTRAINT `fk_reserva_clase1`
  154.     FOREIGN KEY (`idclase` , `idactividad` )
  155.     REFERENCES `mydb`.`clase` (`idclase` , `idactividad` )
  156.   CONSTRAINT `fk_reserva_usuario1`
  157.     FOREIGN KEY (`usuario_dni ` )
  158.     REFERENCES `mydb`.`usuario` (`dni ` )
  159.  
  160. CREATE INDEX `fk_reserva_parcela1` ON `mydb`.`reserva` (`idparcela` ASC, `parcelaidcamping` ASC) ;
  161.  
  162. CREATE INDEX `fk_reserva_bungalow1` ON `mydb`.`reserva` (`idbungalow` ASC, `bungalowidcamping` ASC) ;
  163.  
  164. CREATE INDEX `fk_reserva_clase1` ON `mydb`.`reserva` (`idclase` ASC, `idactividad` ASC) ;
  165.  
  166. CREATE INDEX `fk_reserva_usuario1` ON `mydb`.`reserva` (`usuario_dni ` ASC) ;
  167.  
  168.  
  169. -- -----------------------------------------------------
  170. -- Table `mydb`.`Festivos`
  171. -- -----------------------------------------------------
  172. DROP TABLE IF EXISTS `mydb`.`Festivos` ;
  173.  
  174. CREATE  TABLE IF NOT EXISTS `mydb`.`Festivos` (
  175.   `idfestivos` INT NOT NULL AUTO_INCREMENT ,
  176.   `dia ` VARCHAR(45) NOT NULL ,
  177.   `mes` VARCHAR(45) NOT NULL ,
  178.   `año` VARCHAR(45) NOT NULL ,
  179.   PRIMARY KEY (`idfestivos`) )
  180.  
  181.  
  182. -- -----------------------------------------------------
  183. -- Table `mydb`.`excepciones`
  184. -- -----------------------------------------------------
  185. DROP TABLE IF EXISTS `mydb`.`excepciones` ;
  186.  
  187. CREATE  TABLE IF NOT EXISTS `mydb`.`excepciones` (
  188.   `idclase` INT NOT NULL ,
  189.   `idactividad` VARCHAR(9) NOT NULL ,
  190.   `idfestivos` INT NOT NULL ,
  191.   PRIMARY KEY (`idclase`, `idactividad`, `idfestivos`) ,
  192.   CONSTRAINT `fk_excepciones_clase1`
  193.     FOREIGN KEY (`idclase` , `idactividad` )
  194.     REFERENCES `mydb`.`clase` (`idclase` , `idactividad` )
  195.   CONSTRAINT `fk_excepciones_Festivos1`
  196.     FOREIGN KEY (`idfestivos` )
  197.     REFERENCES `mydb`.`Festivos` (`idfestivos` )
  198.  
  199. CREATE INDEX `fk_excepciones_clase1` ON `mydb`.`excepciones` (`idclase` ASC, `idactividad` ASC) ;
  200.  
  201. CREATE INDEX `fk_excepciones_Festivos1` ON `mydb`.`excepciones` (`idfestivos` ASC) ;
  202.  
  203.  
  204.  
  205. SET SQL_MODE=@OLD_SQL_MODE;
  206. SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
  207. SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;