Ver Mensaje Individual
  #6 (permalink)  
Antiguo 03/06/2012, 07:52
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, 10 meses
Puntos: 2658
Respuesta: Problema con Foreign Key

No veo en tu script ninguna definición de UNIQUE para los campos NombreJugador y NombreTrabajador. Y como te dije, si no son por lo menos UNIQUE, no funcionará.

Además tienes que tener en cuenta una cosa: Cuando intentas crear una FK, lo primero que hacen los DBMS es comprobar si en la tabla referida, el campo en cuestión cumple con la restricción de unicidad, y sino, no se puede crear.
Eso implica que esas tablas (Jugadores y Cuerotecnico) deben tener forzosamente valores únicos en ese campo... cosa que me parece poco probable, ya que se trata del nombre de pila de la persona. En esas condiciones no creo que ni siquiera puedas declararlo UNIQUE...

Por otro lado, como te dije, la definición de las tablas en tu script está incompleta. Faltan parámetros que normalmente MySQL les pone cuando se recupera el CREATE TABLE.

Haznos un favor: Ejecuta las siguientes consultas y postea el resultado de cada una de ellas en un solo script, de esa forma sabremos que es lo que realmente existe, y no lo que supones que existe.

Código MySQL:
Ver original
  1. SHOW CREATE TABLE plantilla;
  2. SHOW CREATE TABLE jugadores;
  3. SHOW CREATE TABLE cuerpoTecnico;

Esto debería dar como resultado algo así:
Código MySQL:
Ver original
  1. CREATE TABLE `cita` (
  2.   `CodigoCita` int(11) NOT NULL auto_increment,
  3.   `Dia` date default NULL,
  4.   `Hora` time default NULL,
  5.   `Jugador` char(10) NOT NULL,
  6.   `Trabajador` char(10) NOT NULL,
  7.   `Asunto` char(25) default NULL,
  8.   PRIMARY KEY  (`CodigoCita`)
  9.  
  10. CREATE TABLE `cuerpotecnico` (
  11.   `NombreTrabajador` char(10) NOT NULL default '',
  12.   `Apellidos` char(10) default NULL,
  13.   `FechaNacimiento` date default NULL,
  14.   `PuestoTrabajo` char(20) default NULL,
  15.   PRIMARY KEY  (`NombreTrabajador`)
  16.  
  17. CREATE TABLE `jugadores` (
  18.   `NombreJugador` char(10) NOT NULL default '',
  19.   `Apellidos` char(10) default NULL,
  20.   `FechaNacimiento` date default NULL,
  21.   `Posicion` char(10) default NULL,
  22.   `Dorsal` int(11) default NULL,
  23.   `Situacion` enum('Lesionado','Activo') default NULL,
  24.   `Antiguedad` int(11) default NULL,
  25.   PRIMARY KEY  (`NombreJugador`)
  26.  
  27. CREATE TABLE `plantilla` (
  28.   `Nombre` char(20) NOT NULL,
  29.   `Categoria` char(20) NOT NULL,
  30.   PRIMARY KEY  (`Nombre`)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 03/06/2012 a las 08:00