Ver Mensaje Individual
  #13 (permalink)  
Antiguo 26/11/2013, 06:53
Avatar de gnzsoloyo
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 Alter Table

Por lo pronto, tenías esa duplicidad de constraint que genera sin duda un fallo, ya .
Por otro lado, ya que el nombre de una constraint en único en cada base. Por ende no puede haber iguales nombres ni entre tablas diferentes.
Adicionalmente, como te dije, no están los ENGINE, que podría implicar fallos si el default tabletype es MyISAM en lugar de InnoDB.
Además, el tema del charset y collation son críticos, porque puedes tener en las doos tablas el mismo VARCHAR con igual longitud, pero si no tienen igual charset y colation... no funcionará, porque los rangos de representación del VARCHAR serían diferentes.
Finalmente, el orden de creación en ese script está mal, decididamente mal. Aparecían las definiciones de las FK antes de crear la tabla a la que hacían referencia.

Consejo: Usa una buena herramienta CASE y no hagas bases a mano hasta que logres dominio completo de esta etapa.

Probemos así:
Código MySQL:
Ver original
  1. CREATE TABLE  `CRIADOR`(
  2.     `numero_criador` VARCHAR(5) NOT NULL,
  3.     `nombre` VARCHAR(15),
  4.     `apellidos` VARCHAR(30),
  5.     `direccion` VARCHAR(10),
  6.     `poblacion` VARCHAR(10),
  7.     `provincia` VARCHAR(10),
  8.     `cp` INT(5),
  9.     `telefono` INT(9),
  10.     `email` VARCHAR(40),
  11.     `federacion` VARCHAR(10),
  12.     `asociacion` VARCHAR(40),
  13.     PRIMARY KEY (`numero_criador`)
  14.    ) ENGINE = INNODB;
  15.  
  16.  CREATE TABLE  `PAJARO`
  17.    (
  18.     `numero_anilla` INT(4) NOT NULL,
  19.     `numero_criador` VARCHAR(5) NOT NULL,
  20.     `año` INT(4) NOT NULL,
  21.     `sexo` VARCHAR(5),
  22.     `imagen` VARCHAR(4000),
  23.     `grupo` VARCHAR(40),
  24.     `seccion` VARCHAR(40),
  25.     `denominacion` VARCHAR(40),
  26.     PRIMARY KEY (`numero_anilla`)
  27.    ) ENGINE = INNODB;
  28.  
  29.  
  30.  CREATE TABLE  `USUARIO`
  31.    (
  32.     `nombre` VARCHAR(20) NOT NULL,
  33.     `contraseña` VARCHAR(20)NOT NULL,
  34.     PRIMARY KEY (`nombre`)
  35.    ) ENGINE = INNODB;
  36.  
  37.  
  38. CREATE TABLE  `CRIA`
  39.    (
  40.     `puesta` INT(2) AUTO_INCREMENT NOT NULL,
  41.     `fecha_incubar` DATE,
  42.     `fecha_mirar` DATE,
  43.     `fecha_nacer` DATE,
  44.     `fecha_anillar` DATE,
  45.     `fecha_separar` DATE,
  46.     PRIMARY KEY (`puesta`)
  47.    ) ENGINE = INNODB;
  48.  
  49. CREATE TABLE  `GRUPO`
  50.   ( `grupo` VARCHAR(40),
  51.     `referencia_grupo` INT(4) ,
  52.     PRIMARY KEY (`grupo`)
  53.    ) ENGINE = INNODB;
  54.  
  55. CREATE TABLE  `SECCION`
  56.    (
  57.     `seccion` VARCHAR(40),
  58.     `grupo` VARCHAR(40),
  59.     `referencia_seccion` INT(4) ,
  60.     PRIMARY KEY (`seccion`)
  61.    ) ENGINE = INNODB;
  62.  
  63. CREATE TABLE  `DENOMINACION`
  64.    (
  65.     `denominacion` VARCHAR(40),
  66.     `seccion` VARCHAR(40),
  67.     `referencia_denominacion` INT(4),
  68.     PRIMARY KEY (`denominacion`)
  69.    ) ENGINE = INNODB;
  70.  
  71.  CREATE TABLE  `PAREJA`
  72.    (
  73.     `numero_pareja` INT(4) NOT NULL,
  74.     `numero_anilla_m` INT(4) NOT NULL,
  75.     `numero_criador_m` VARCHAR(5) NOT NULL,
  76.     `año_m` INT(4) NOT NULL,
  77.     `sexo_m` VARCHAR(5),
  78.     `imagen_m` VARCHAR(4000),
  79.     `grupo_m` VARCHAR(40)NOT NULL,
  80.     `seccion_m` VARCHAR(40)NOT NULL,
  81.     `denominacion_m` VARCHAR(40)NOT NULL,
  82.     `numero_anilla_h` INT(4) NOT NULL,
  83.     `numero_criador_h` VARCHAR(5) NOT NULL,
  84.     `año_h` INT(4) NOT NULL,
  85.     `sexo_h` VARCHAR(5),
  86.     `imagen_h` VARCHAR(4000),
  87.     `grupo_h` VARCHAR(40)NOT NULL,
  88.     `seccion_h` VARCHAR(40)NOT NULL,
  89.     `denominacion_h` VARCHAR(40)NOT NULL,
  90.     PRIMARY KEY (`numero_pareja`)
  91.    ) ENGINE = INNODB;
  92.    
  93. /*/*/
  94.  
  95. ALTER TABLE `pareja`
  96.     ADD CONSTRAINT `pareja_ibfk_1`
  97.     FOREIGN KEY (`numero_criador_m`)
  98.     REFERENCES `criador` (`numero_criador`)
  99.  
  100. ALTER TABLE `pareja`
  101.     ADD CONSTRAINT `pareja_ibfk_2`
  102.     FOREIGN KEY (`numero_anilla_m`)
  103.     REFERENCES `pajaro` (`numero_anilla`)
  104.  
  105. ALTER TABLE `pareja`
  106.     ADD CONSTRAINT `pajaro_ibfk_3`
  107.     FOREIGN KEY (`grupo_m`)
  108.     REFERENCES `grupo` (`grupo`)
  109.  
  110. ALTER TABLE `pareja`
  111.     ADD CONSTRAINT `pajaro_ibfk_5`
  112.     FOREIGN KEY (`seccion_m`)
  113.     REFERENCES `seccion` (`seccion`)
  114.  
  115. ALTER TABLE `pareja`
  116.     ADD CONSTRAINT `pajaro_ibfk_6`
  117.     FOREIGN KEY (`denominacion_m`)
  118.     REFERENCES `denominacion` (`denominacion`)
  119.  
  120.  
  121. ALTER TABLE `pareja`
  122.     ADD CONSTRAINT `pareja_ibfk_7`
  123.     FOREIGN KEY (`numero_criador_h`)
  124.     REFERENCES `criador` (`numero_criador`)
  125.  
  126. ALTER TABLE `pareja`
  127.     ADD CONSTRAINT `pareja_ibfk_8`
  128.     FOREIGN KEY (`numero_anilla_h`)
  129.     REFERENCES `pajaro` (`numero_anilla`)
  130.  
  131. ALTER TABLE `pareja`
  132.     ADD CONSTRAINT `pajaro_ibfk_10`
  133.     FOREIGN KEY (`grupo_h`)
  134.     REFERENCES `grupo` (`grupo`)
  135.  
  136. ALTER TABLE `pareja`
  137.     ADD CONSTRAINT `pajaro_ibfk_11`
  138.     FOREIGN KEY (`seccion_h`)
  139.     REFERENCES `seccion` (`seccion`)
  140.  
  141. ALTER TABLE `pareja`
  142.     ADD CONSTRAINT `pajaro_ibfk_12`
  143.     FOREIGN KEY (`denominacion_h`)
  144.     REFERENCES `denominacion` (`denominacion`)
  145.  
  146. ALTER TABLE `seccion`
  147.     ADD CONSTRAINT `seccion_ibfk_1`
  148.     FOREIGN KEY (`GRUPO`)
  149.     REFERENCES `GRUPO` (`GRUPO`)
  150.  
  151. ALTER TABLE `pajaro`
  152.     ADD CONSTRAINT `pajaro_ibfk_1`
  153.     FOREIGN KEY (`numero_criador`)
  154.     REFERENCES `criador` (`numero_criador`)
  155.  
  156. ALTER TABLE `pajaro`
  157.     ADD CONSTRAINT `pajaro_ibfk_2`
  158.     FOREIGN KEY (`grupo`)
  159.     REFERENCES `grupo` (`grupo`)
  160.  
  161. ALTER TABLE `pajaro`
  162.     ADD CONSTRAINT `pajaro_ibfk_3`
  163.     FOREIGN KEY (`seccion`)
  164.     REFERENCES `seccion` (`seccion`)
  165.  
  166. ALTER TABLE `pajaro`
  167.     ADD CONSTRAINT `pajaro_ibfk_4`
  168.     FOREIGN KEY (`denominacion`)
  169.     REFERENCES `denominacion` (`denominacion`)
  170.  
  171. ALTER TABLE `denominacion`
  172.     ADD CONSTRAINT `denominacion_ibfk_1`
  173.     FOREIGN KEY (`SECCION`)
  174.     REFERENCES `SECCION` (`SECCION`)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)