Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/02/2011, 11:08
nestorag1991
 
Fecha de Ingreso: noviembre-2010
Mensajes: 26
Antigüedad: 14 años
Puntos: 0
Respuesta: Foreign key error

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Verifica si ya tienes datos en las tablas. Puede darse que al menos una de las tablas contenga datos que no cumplen con la restricción.
-Tengo datos en las tablas Alumnos y Profesores.
-Cumplen los requisitos, es decir son VARCHAR(10) todos, y lo que contiene son letras, es decir, lo cumple.
-La codificación de los caracteres es la misma para todos, UFC

Aquíe el código fuente:

Código MySQL:
Ver original
  1. CREATE TABLE Alumnos(
  2.     DNI CHAR(9),
  3.     Usuario VARCHAR(10),
  4.     Password VARCHAR(10),
  5.     Nombre VARCHAR(50),
  6.     fechanacimiento DATE,
  7.     dirección VARCHAR(50),
  8.     teléfono VARCHAR(50),
  9.     email VARCHAR(50),
  10.     PRIMARY KEY(DNI, Usuario, Password)
  11.     );
  12.    
  13. CREATE TABLE Cursos(
  14.     Id INT,
  15.     Nombre VARCHAR (50),
  16.     Descripción VARCHAR (100),
  17.     n_horas INT,
  18.     fechainicio DATE,
  19.     fechafin DATE,
  20.     PRIMARY KEY(Id)
  21.     );
  22.    
  23. CREATE TABLE Matrícula(
  24.     DNI CHAR(9),
  25.     CodCurso INT,
  26.     PRIMARY KEY(DNI, CodCurso),
  27.     FOREIGN KEY(CodCurso) REFERENCES Cursos(Id) ON UPDATE CASCADE ON DELETE CASCADE,
  28.     );
  29.    
  30. CREATE TABLE Profesores(
  31.     DNI CHAR(9),
  32.     Usuario VARCHAR(10),
  33.     Password VARCHAR(10),
  34.     Nombre VARCHAR(50),
  35.     Dirección VARCHAR(50),
  36.     Teléfono VARCHAR(50),
  37.     Correo VARCHAR(50),
  38.     Fechaincorporación DATE,
  39.     PRIMARY KEY(DNI, Usuario, Password)
  40.     );
  41.  
  42. CREATE TABLE Cursos_Profesores(
  43.     DNI CHAR(9),
  44.     CodCurso INT,
  45.     PRIMARY KEY(CodCurso),
  46.     FOREIGN KEY(DNI) REFERENCES Profesores(DNI) ON UPDATE CASCADE ON DELETE CASCADE,
  47.     FOREIGN KEY(CodCurso) REFERENCES Cursos(Id) ON UPDATE CASCADE ON DELETE CASCADE
  48.     );
  49.    
  50. CREATE TABLE acceso(
  51.   Usuario VARCHAR(10),
  52.   PRIMARY KEY(Usuario, Password) ,
  53.   FOREIGN KEY (Usuario) REFERENCES Alumnos(Usuario) ON UPDATE CASCADE ON DELETE CASCADE,
  54.   FOREIGN KEY (Usuario) REFERENCES Profesores(Usuario) ON UPDATE CASCADE ON DELETE CASCADE,
  55.   )


Aquí el error:

#1005 - Can't create table 'instituto.acceso' (errno: 150) (<a href="server_engines.php?engine=InnoDB&amp;page=St atus&amp;token=1ca8ee86276d0d0801483ef386c1878e">D etalles...</a>)

He probado montones de soluciones, tu veras, como siempre que es por alguna tonteria.