Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/05/2012, 14:19
jediap
 
Fecha de Ingreso: abril-2012
Mensajes: 42
Antigüedad: 12 años, 7 meses
Puntos: 1
Consulta errno: 150

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>");

?>