Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con duplicate key (?)

Estas en el tema de Problema con duplicate key (?) en el foro de Java en Foros del Web. Pues eso, básicamente al insertar la útlima tabla de muchos a muchos me sale el siguiente mensaje: Error consulta SQL: CREATE TABLE jugador_equipo( id_jugador INT, ...
  #1 (permalink)  
Antiguo 14/02/2016, 07:26
 
Fecha de Ingreso: junio-2015
Mensajes: 11
Antigüedad: 8 años, 10 meses
Puntos: 0
Problema con duplicate key (?)

Pues eso, básicamente al insertar la útlima tabla de muchos a muchos me sale el siguiente mensaje:

Error
consulta SQL:


CREATE TABLE jugador_equipo(
id_jugador INT,
id_equipo INT,
PRIMARY KEY(id_jugador, id_equipo),
CONSTRAINT fk_id_jugador FOREIGN KEY (id_jugador) REFERENCES jugador(id),
CONSTRAINT fk_id_equipo FOREIGN KEY (id_equipo) REFERENCES equipo(id)
)
MySQL ha dicho: Documentación

#1005 - Can't create table `myequipo`.`jugador_equipo` (errno: 121 "Duplicate key on write or update") (Detalles…)

Cosa que no entiendo para nada...

La bbdd es esta:

Código SQL:
Ver original
  1. CREATE DATABASE myequipo;
  2.  
  3. USE myequipo;
  4.  
  5. CREATE TABLE competicion(
  6.     id INT PRIMARY KEY AUTO_INCREMENT,
  7.     nombre VARCHAR(50)
  8.     );
  9.  
  10. CREATE TABLE jugador(
  11.     id INT PRIMARY KEY AUTO_INCREMENT,
  12.     nombre VARCHAR(50),
  13.     apellidos VARCHAR(50),
  14.     ciudad VARCHAR(50),
  15.     altura VARCHAR(4),
  16.     peso VARCHAR(3),
  17.     posicion VARCHAR(50),
  18.     id_competicion INT,
  19.     CONSTRAINT fk_id_competicion FOREIGN KEY (id_competicion) REFERENCES competicion(id)
  20.     );
  21.        
  22. CREATE TABLE equipo(
  23.     id INT PRIMARY KEY AUTO_INCREMENT,
  24.     nombre VARCHAR(50),
  25.     ciudad VARCHAR(50),
  26.     nombreEstadio VARCHAR(50)
  27.     );
  28.    
  29. CREATE TABLE usuario(
  30.     id INT PRIMARY KEY AUTO_INCREMENT,
  31.     nombre VARCHAR(50),
  32.     contrasena VARCHAR(50),
  33.     edad INT,
  34.     email VARCHAR(100),
  35.     id_equipo INT,
  36.     CONSTRAINT fk_id_equipo FOREIGN KEY (id_equipo) REFERENCES equipo(id)
  37.     );
  38.    
  39. CREATE TABLE estadisticas(
  40.     id INT PRIMARY KEY AUTO_INCREMENT,
  41.     puntos INT,
  42.     rebotes INT,
  43.     asistencias INT,
  44.     robos INT,
  45.     tapones INT,
  46.     perdidas INT
  47.     );
  48.    
  49. CREATE TABLE jugador_estadisticas(
  50.     id_jugador INT,
  51.     id_estadisticas INT,
  52.     PRIMARY KEY(id_jugador, id_estadisticas),
  53.     CONSTRAINT fk_id_jugador FOREIGN KEY (id_jugador) REFERENCES jugador(id),
  54.     CONSTRAINT fk_id_estadisticas FOREIGN KEY (id_estadisticas) REFERENCES estadisticas(id)
  55.     );
  56.    
  57. CREATE TABLE jugador_equipo(
  58.     id_jugador INT,
  59.     id_equipo INT,
  60.     PRIMARY KEY(id_jugador, id_equipo),
  61.     CONSTRAINT fk_id_jugador FOREIGN KEY (id_jugador) REFERENCES jugador(id),
  62.     CONSTRAINT fk_id_equipo FOREIGN KEY (id_equipo) REFERENCES equipo(id)
  63.     );
  #2 (permalink)  
Antiguo 14/02/2016, 08:28
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Problema con duplicate key (?)

Buenas,

Este tema no es de Java, sino de base de datos. Deberia ir en el foro correspondiente. http://www.forosdelweb.com/f21/

En cualquier caso el error es claro. Ya existe una foreign key llamada fk_id_jugador y otra lladada fk_id_equipo (las creas antes en el script). Deberias darle otro nombre.

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 14/02/2016, 09:07
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, 5 meses
Puntos: 2658
Respuesta: Problema con duplicate key (?)

Estas duplicando los nombres de las CONSTRAINT. Cada vez que creas una para una tabla debe tener nombre único.
Es decir, en cada tabla el nombre de la CONSTRAINT es diferente, aunque apunten a la misma PK de la misma tabla.
__________________
¿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: sql
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 23:00.