Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema Alter Table

Estas en el tema de Problema Alter Table en el foro de Mysql en Foros del Web. Buenos días, tengo un problema y es que creo varios alter table, pero uno en concreto me da error y no consigo solucionarlo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 26/11/2013, 01:00
 
Fecha de Ingreso: octubre-2013
Ubicación: Asturias
Mensajes: 52
Antigüedad: 10 años, 6 meses
Puntos: 1
Problema Alter Table

Buenos días, tengo un problema y es que creo varios alter table, pero uno en concreto me da error y no consigo solucionarlo

Código MySQL:
Ver original
  1. CREATE TABLE  `PAREJA`
  2.    (    `numero_pareja` INT(4) NOT NULL,
  3.     `numero_anilla_m` INT(4) NOT NULL,
  4.     `numero_criador_m` VARCHAR(5) NOT NULL,
  5.     `año_m` INT(4) NOT NULL,
  6.     `sexo_m` VARCHAR(5),
  7.     `imagen_m` VARCHAR(4000),
  8.     `grupo_m` VARCHAR(40)NOT NULL,
  9.     `seccion_m` VARCHAR(40)NOT NULL,
  10.     `denominacion_m` VARCHAR(40)NOT NULL,
  11.     `numero_anilla_h` INT(4) NOT NULL,
  12.     `numero_criador_h` VARCHAR(5) NOT NULL,
  13.     `año_h` INT(4) NOT NULL,
  14.     `sexo_h` VARCHAR(5),
  15.     `imagen_h` VARCHAR(4000),
  16.     `grupo_h` VARCHAR(40)NOT NULL,
  17.     `seccion_h` VARCHAR(40)NOT NULL,
  18.     `denominacion_h` VARCHAR(40)NOT NULL,
  19.      
  20.     PRIMARY KEY (`numero_pareja`)
  21.    )
alter table
Código MySQL:
Ver original
  1. ALTER TABLE `pareja`
  2.     ADD CONSTRAINT `pajaro_ibfk_3`
  3.     FOREIGN KEY (`grupo_m`)
  4.     REFERENCES `grupo` (`grupo`)

Este es el error que me da:
#1005 - Can't create table 'cria.#sql-bac_1f' (errno: 121)


Lo que mas me estraña es que he creado más alter table similares para esta tabla
  #2 (permalink)  
Antiguo 26/11/2013, 02:12
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema Alter Table

1.Existe la tabla grupo?
2.grupo_m es PK de grupo o como mínimo tiene definido un indice único?
3.hay otra CONSTRAINT con el mismo nombre `pajaro_ibfk_3`?
4.Por que no creas la FK al mismo tiempo que creas la tabla?
5.Has buscado "errno: 121 Mysql" en google...?

http://stackoverflow.com/questions/3...rror-errno-121
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 26/11/2013, 02:45
 
Fecha de Ingreso: octubre-2013
Ubicación: Asturias
Mensajes: 52
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Problema Alter Table

La tabla grupo existe, grupo es clave primaria de esa tabla, es la unica con ese nombre.

Cree otro Alter Table que es igual:

Código MySQL:
Ver original
  1. ALTER TABLE `pareja`
  2.     ADD CONSTRAINT `pajaro_ibfk_10`
  3.     FOREIGN KEY (`grupo_h`)
  4.     REFERENCES `grupo` (`grupo`)

_m significa macho y _h hembra, por lo que cree dos alter table, uno para cada uno, es decir, uno para numero_anilla_m, numero_criador_m,... y ninguno me dio error.

Saludos
  #4 (permalink)  
Antiguo 26/11/2013, 03:03
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Problema Alter Table

Como ya respondí hace muy poco a otro forista:
Ese error se da habitualmente en cuatro casos (no exclusivamene):
1) Los tipos de columna no corresponden exactamente entre PK y FK (tipo, rango, collation).
2) Se intenta una FK desde un campo simple a una clave compuesta.
3) Existen datos en la tabla con la FK que no existen en la tabla referida (tablas que ya contienen datos, con valores ilegales).
4) El orden de creacion de las tablas es incorrecto (las que tienen FK deben ser las últimas).

Este tema es recurrente en el foro. Usa el buscador para encontrarlos si quieres ver analisis más completos.

Adicionalmente: No es buena idea poner a un campo el mismo nombre que a la tabla a que pertenece. Puede causar problemas de jerarquía de objetos.

Para mayor seguridad, postea el CREATE TABLE de esa tabla "grupo".
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 26/11/2013, 03:45
 
Fecha de Ingreso: octubre-2013
Ubicación: Asturias
Mensajes: 52
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Problema Alter Table

Código MySQL:
Ver original
  1. CREATE TABLE  `GRUPO`
  2.   ( `grupo` VARCHAR(40),
  3.     `referencia_grupo` INT(4) ,
  4.    
  5.  
  6.     PRIMARY KEY (`grupo`)
  7.    )
  #6 (permalink)  
Antiguo 26/11/2013, 04:22
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Problema Alter Table

En cuanto al resto de mis observaciones, ¿las verificaste?

Por cierto, estás poniendo incompleto el CREATE TABLE, porque no sólo no se ve el motor (InnoDB o MyISAM), sino que tampoco defaults de columnas, collation, charset, que son primordiales cuando trabajas con PK sobre VARCHAR.

Trata de poner las cosas completas. Información a medias da por resultados ayudas ineficientes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 26/11/2013, 05:38
 
Fecha de Ingreso: octubre-2013
Ubicación: Asturias
Mensajes: 52
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Problema Alter Table

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.    
  14.  
  15.     PRIMARY KEY (`numero_criador`)
  16.    )
  17.  
  18.  
  19.  
  20.     CREATE TABLE  `PAJARO`
  21.    (    `numero_anilla` INT(4) NOT NULL,
  22.     `numero_criador` VARCHAR(5) NOT NULL,
  23.     `año` INT(4) NOT NULL,
  24.     `sexo` VARCHAR(5),
  25.     `imagen` VARCHAR(4000),
  26.     `grupo` VARCHAR(40),
  27.     `seccion` VARCHAR(40),
  28.     `denominacion` VARCHAR(40),
  29.  
  30.     PRIMARY KEY (`numero_anilla`)
  31.    )
  32.  
  33.  
  34.     ALTER TABLE `pajaro`
  35.     ADD CONSTRAINT `pajaro_ibfk_1`
  36.     FOREIGN KEY (`numero_criador`)
  37.     REFERENCES `criador` (`numero_criador`)
  38.  
  39.     ALTER TABLE `pajaro`
  40.     ADD CONSTRAINT `pajaro_ibfk_2`
  41.     FOREIGN KEY (`grupo`)
  42.     REFERENCES `grupo` (`grupo`)
  43.  
  44.     ALTER TABLE `pajaro`
  45.     ADD CONSTRAINT `pajaro_ibfk_3`
  46.     FOREIGN KEY (`seccion`)
  47.     REFERENCES `seccion` (`seccion`)
  48.  
  49.     ALTER TABLE `pajaro`
  50.     ADD CONSTRAINT `pajaro_ibfk_4`
  51.     FOREIGN KEY (`denominacion`)
  52.     REFERENCES `denominacion` (`denominacion`)
  53.  
  54.  
  55.     CREATE TABLE  `USUARIO`
  56.    (    `nombre` VARCHAR(20) NOT NULL,
  57.     `contraseña` VARCHAR(20)NOT NULL,
  58.    
  59.    
  60.     PRIMARY KEY (`nombre`)
  61.    )
  62.  
  63.  
  64.     CREATE TABLE  `PAREJA`
  65.    (    `numero_pareja` INT(4) NOT NULL,
  66.     `numero_anilla_m` INT(4) NOT NULL,
  67.     `numero_criador_m` VARCHAR(5) NOT NULL,
  68.     `año_m` INT(4) NOT NULL,
  69.     `sexo_m` VARCHAR(5),
  70.     `imagen_m` VARCHAR(4000),
  71.     `grupo_m` VARCHAR(40)NOT NULL,
  72.     `seccion_m` VARCHAR(40)NOT NULL,
  73.     `denominacion_m` VARCHAR(40)NOT NULL,
  74.     `numero_anilla_h` INT(4) NOT NULL,
  75.     `numero_criador_h` VARCHAR(5) NOT NULL,
  76.     `año_h` INT(4) NOT NULL,
  77.     `sexo_h` VARCHAR(5),
  78.     `imagen_h` VARCHAR(4000),
  79.     `grupo_h` VARCHAR(40)NOT NULL,
  80.     `seccion_h` VARCHAR(40)NOT NULL,
  81.     `denominacion_h` VARCHAR(40)NOT NULL,
  82.      
  83.     PRIMARY KEY (`numero_pareja`)
  84.    )
  85.    
  86.     ALTER TABLE `pareja`
  87.     ADD CONSTRAINT `pareja_ibfk_1`
  88.     FOREIGN KEY (`numero_criador_m`)
  89.     REFERENCES `criador` (`numero_criador`)
  90.  
  91.     ALTER TABLE `pareja`
  92.     ADD CONSTRAINT `pareja_ibfk_2`
  93.     FOREIGN KEY (`numero_anilla_m`)
  94.     REFERENCES `pajaro` (`numero_anilla`)
  95. /*/*/
  96.  
  97.     ALTER TABLE `pareja`
  98.     ADD CONSTRAINT `pajaro_ibfk_3`
  99.     FOREIGN KEY (`grupo_m`)
  100.     REFERENCES `grupo` (`grupo`)
  101.  
  102.     ALTER TABLE `pareja`
  103.     ADD CONSTRAINT `pajaro_ibfk_10`
  104.     FOREIGN KEY (`grupo_h`)
  105.     REFERENCES `grupo` (`grupo`)
  106.  
  107.  
  108.     ALTER TABLE `pareja`
  109.     ADD CONSTRAINT `pajaro_ibfk_5`
  110.     FOREIGN KEY (`seccion_m`)
  111.     REFERENCES `seccion` (`seccion`)
  112.  
  113.     ALTER TABLE `pareja`
  114.     ADD CONSTRAINT `pajaro_ibfk_6`
  115.     FOREIGN KEY (`denominacion_m`)
  116.     REFERENCES `denominacion` (`denominacion`)
  117.  
  118.  
  119.     ALTER TABLE `pareja`
  120.     ADD CONSTRAINT `pareja_ibfk_7`
  121.     FOREIGN KEY (`numero_criador_h`)
  122.     REFERENCES `criador` (`numero_criador`)
  123.  
  124.     ALTER TABLE `pareja`
  125.     ADD CONSTRAINT `pareja_ibfk_8`
  126.     FOREIGN KEY (`numero_anilla_h`)
  127.     REFERENCES `pajaro` (`numero_anilla`)
  128.  
  129.  
  130.  
  131.  
  132.     ALTER TABLE `pareja`
  133.     ADD CONSTRAINT `pajaro_ibfk_10`
  134.     FOREIGN KEY (`grupo_h`)
  135.     REFERENCES `grupo` (`grupo`)
  136.  
  137.     ALTER TABLE `pareja`
  138.     ADD CONSTRAINT `pajaro_ibfk_11`
  139.     FOREIGN KEY (`seccion_h`)
  140.     REFERENCES `seccion` (`seccion`)
  141.  
  142.     ALTER TABLE `pareja`
  143.     ADD CONSTRAINT `pajaro_ibfk_12`
  144.     FOREIGN KEY (`denominacion_h`)
  145.     REFERENCES `denominacion` (`denominacion)
  146.     ON DELETE CASCADE
  147.  
  148.  
  149.    
  150.  
  151.  
  152.  
  153.     CREATE TABLE  `CRIA`
  154.    (    `puesta` INT(2) AUTO_INCREMENT NOT NULL,
  155.     `fecha_incubar` DATE,
  156.     `fecha_mirar` DATE,
  157.     `fecha_nacer` DATE,
  158.     `fecha_anillar` DATE,
  159.     `fecha_separar` DATE,
  160.  
  161.     PRIMARY KEY (`puesta`)
  162.   )
  163. ///////////////////////////////////////////////////////////////////////////////////////////
  164.  
  165.  
  166.  
  167.     CREATE TABLE  `GRUPO`
  168.   ( `grupo` VARCHAR(40),
  169.     `referencia_grupo` INT(4) ,
  170.    
  171.  
  172.     PRIMARY KEY (`grupo`)
  173.   )
  174.  
  175.     CREATE TABLE  `SECCION`
  176.    (    `seccion` VARCHAR(40),
  177.     `grupo` VARCHAR(40),
  178.     `referencia_seccion` INT(4) ,
  179.    
  180.  
  181.     PRIMARY KEY (`seccion`)
  182.   )
  183.     ALTER TABLE `seccion`
  184.     ADD CONSTRAINT `seccion_ibfk_1`
  185.     FOREIGN KEY (`GRUPO`)
  186.     REFERENCES `GRUPO` (`GRUPO`)
  187.     ON DELETE CASCADE
  188.  
  189.  
  190.     CREATE TABLE  `DENOMINACION`
  191.    (    `denominacion` VARCHAR(40),
  192.     `seccion` VARCHAR(40),
  193.     `referencia_denominacion` INT(4),
  194.  
  195.     PRIMARY KEY (`denominacion`)
  196.   )
  197.  
  198.  
  199.     ALTER TABLE `denominacion`
  200.     ADD CONSTRAINT `denominacion_ibfk_1`
  201.     FOREIGN KEY (`SECCION`)
  202.     REFERENCES `SECCION` (`SECCION`)
  203.     ON DELETE CASCADE
  #8 (permalink)  
Antiguo 26/11/2013, 05:46
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Problema Alter Table

¿De donde sacaste eso?
Le faltan todas las cláusulas ENGINE, las de CHARSET, COLLATION y hasta están mal cerradas las sentencias.
¿Con que lo generaste?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 26/11/2013, 05:49
 
Fecha de Ingreso: octubre-2013
Ubicación: Asturias
Mensajes: 52
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Problema Alter Table

Las cree yo mismo, no me dio ningun error, solo ese

Saludos
  #10 (permalink)  
Antiguo 26/11/2013, 06:10
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema Alter Table

En tu codigo hay una repetición.... lineas 109 a 113 y 144 a 148, por otro lado las querys se deben cerrar con ;


....
ALTER TABLE `pareja`
ADD CONSTRAINT `pajaro_ibfk_3`
FOREIGN KEY (`grupo_m`)
REFERENCES `grupo` (`grupo`)
ON DELETE CASCADE

ALTER TABLE `pareja`
ADD CONSTRAINT `pajaro_ibfk_10`
FOREIGN KEY (`grupo_h`)
REFERENCES `grupo` (`grupo`)
ON DELETE CASCADE



ALTER TABLE `pareja`
ADD CONSTRAINT `pajaro_ibfk_5`
....


ALTER TABLE `pareja`
ADD CONSTRAINT `pajaro_ibfk_10`
FOREIGN KEY (`grupo_h`)
REFERENCES `grupo` (`grupo`)
ON DELETE CASCADE


.....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #11 (permalink)  
Antiguo 26/11/2013, 06:20
 
Fecha de Ingreso: octubre-2013
Ubicación: Asturias
Mensajes: 52
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Problema Alter Table

Bueno, eso me confundía yo al pegar, no tiene nada que ver, copié para ver si tenía algún fallo el pajaro_ibfk_3, pero no tiene nada que ver.

Saludos
  #12 (permalink)  
Antiguo 26/11/2013, 06:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema Alter Table

Si no pasas el codigo original dificilmente sabremos donde puede estar el error....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #13 (permalink)  
Antiguo 26/11/2013, 06:53
Avatar de 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, 4 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)
  #14 (permalink)  
Antiguo 26/11/2013, 07:17
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Problema Alter Table

Nota final:
Si estás usando un hosting basado en Linux, debes tener cuidado con los nombres en mayúsculas y minúsculas. Para Linux no son lo mismo.
Esto funciona:
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`)
Luego de corregir los nombres.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: null, sql, table
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:45.