Estoy creando una aplicacion web y ya la tengo terminada xro me fallan las foreign key
Pongo el codigo, en las consultas del foreign key me da este error y no entiendo porque.
Las consultas de las foreign key estan al final del codigo, las marco en negrita
La descripción del error es: Can't create table 'gestionPlantilla.#sql-ac7_ee' (errno: 150)
La descripción del error es: Can't create table 'gestionPlantilla.#sql-ac7_ee' (errno: 150)
Consulta con problema errno: 150URGENTE
<?php
// llamar al script usar_gestion para conectarse a la tabla gestionPlantilla
require("conexion.php");
// Creamos las tablas de la base de datos guardandola en una variable
// PLANTILLA
$consultaPlantilla= "CREATE TABLE IF NOT EXISTS plantilla";
$consultaPlantilla.= "( IDPlantilla char(5) not null,";
$consultaPlantilla.= "Nombre char(20) not null,";
$consultaPlantilla.= "Categoria char(20) not null,";
$consultaPlantilla.= "PRIMARY KEY(IDPlantilla) )";
// Se ejecuta la consulta.
$hacerConsulta=mysql_query ($consultaPlantilla, $conectado);
// Se recupera información sobre el error producido.
$tipoError=mysql_error();
// Se muestra lo que tenemos acerca del error.
echo ("La descripción del error es: <b>$tipoError</b><br>");
// JUGADORES
$consultaJugador= "CREATE TABLE IF NOT EXISTS jugadores";
$consultaJugador.= "( IDJugador int auto_increment,";
$consultaJugador.= "NombreJugador char(10) ,";
$consultaJugador.= "Apellidos char(10) ,";
$consultaJugador.= "FechaNacimiento date ,";
$consultaJugador.= "Posicion char(10) ,";
$consultaJugador.= "Dorsal int ,";
$consultaJugador.= "Situacion enum('Lesionado','Activo'),";
$consultaJugador.= "Antiguedad int ,";
$consultaJugador.= "PRIMARY KEY(IDJugador,NombreJugador) )";
// Se ejecuta la consulta.
$hacerConsulta=mysql_query ($consultaJugador, $conectado);
// Se recupera información sobre el error producido.
$tipoError=mysql_error();
// Se muestra lo que tenemos acerca del error.
echo ("La descripción del error es: <b>$tipoError</b><br>");
// CUERPOTECNICO
$consultaCT= "CREATE TABLE IF NOT EXISTS cuerpoTecnico";
$consultaCT.= "( IDEmpleado int auto_increment,";
$consultaCT.= "NombreTrabajador char(10) ,";
$consultaCT.= "Apellidos char(10),";
$consultaCT.= "FechaNacimiento date ,";
$consultaCT.= "PuestoTrabajo char(20),";
$consultaCT.="PRIMARY KEY(IDEmpleado,NombreTrabajador) )";
// Se ejecuta la consulta.
$hacerConsulta=mysql_query ($consultaCT, $conectado);
// Se recupera información sobre el error producido.
$tipoError=mysql_error();
// Se muestra lo que tenemos acerca del error.
echo ("La descripción del error es: <b>$tipoError</b><br>");
// CITA
$consultaCita= "CREATE TABLE IF NOT EXISTS cita";
$consultaCita.= "( CodigoCita int auto_increment,";
$consultaCita.= "Dia date,";
$consultaCita.= "Hora time ,";
$consultaCita.= "NombreJugador char(10) ,";
$consultaCita.= "NombreTrabajador char(10) ,";
$consultaCita.= "Asunto char(25),";
$consultaCita.= "PRIMARY KEY(CodigoCita))";
// Se ejecuta la consulta.
$hacerConsulta=mysql_query ($consultaCita, $conectado);
// Se recupera información sobre el error producido.
$tipoError=mysql_error();
// Se muestra lo que tenemos acerca del error.
echo ("La descripción del error es: <b>$tipoError</b><br>");
//Se crean las foreign key
$consulta= "ALTER TABLE cita ADD CONSTRAINT citaJug FOREIGN KEY (NombreJugador)
REFERENCES jugadores (NombreJugador) ON DELETE SET NULL";
// Se ejecuta la consulta.
$hacerConsulta=mysql_query ($consulta, $conectado);
$tipoError=mysql_error();
// Se muestra lo que tenemos acerca del error.
echo ("La descripción del error es: <b>$tipoError</b><br>");
$consulta= "ALTER TABLE cita ADD CONSTRAINT citaCuer FOREIGN KEY (NombreTrabajador)
REFERENCES cuerpoTecnico (NombreTrabajador) ON DELETE SET NULL";
// Se ejecuta la consulta.
$hacerConsulta=mysql_query ($consulta, $conectado);
$tipoError=mysql_error();
// Se muestra lo que tenemos acerca del error.
echo ("La descripción del error es: <b>$tipoError</b><br>");
?>