MySQL - claves foraneas. Ayudenme por favor

 
Vista:

claves foraneas. Ayudenme por favor

Publicado por Abril (2 intervenciones) el 07/07/2007 01:10:33
Hola migos y saludos a todos. Por favor ayudenmen en el siguiente problema que tengo:
Aqui les muestro tres tablas relacionales, con claves foraneas.

Tabla usuario
Create table usuario(IdUsuario int (4) not null auto_increment primary key, nombre varchar(30) , contrasena varchar(30), nivel int(1) not null ) type=InnoDB;

Tabla profesor
Create table profesor (IdProfesor int (3) not null auto_increment primary key, nombres varchar(40) not null, apellidos varchar(50) not null, IdUsuario int (4) not null, index (IdUsuario), foreign key(IdUsuario) references usuario(IdUsuario) ON DELETE CASCADE) type=InnoDB;

Tabla Alumno
Create table alumno (IdAlumno int(4) not null auto_increment primary key, nombres varchar(50) not null, apellidos varchar(45) not null, direccion varchar(60), telefono varchar(15), foto varchar(4), IdGrado int(2) not null, index (IdGrado), foreign key(IdGrado) references grado(IdGrado), IdUsuario int(4) not null, index (IdUsuario),
foreign key(IdUsuario) references usuario(IdUsuario) ON DELETE CASCADE) type=InnoDB;

Además existen tablas Nivel y Grado relacionadas con la tabla Alumno.

Tengo el siguiente problema:
- Cuando elimino un usuario relacionado con un alumno, automaticamente se
elimina un alumno, por la sentencia ON DELETE CASCADE.
- Pero cuando elimino un usuario relacionado con un profesor, no se elimina ni
el usuario, ni el profesor.

Y el error que me muestra es el siguiente:
Cannot delete or update a parent row a foreign key constraint fail
Pero dicho error a mi parecer no tiene lógica, debido a que dichos registros que deseo eliminar existen.

Nose, pero quizás el error sea de que la tabla alumno y profesor, están relacionadas con la tabla usuario, a través del mismo campo, como muestro arriba.

Esperando su respuestas. Les agradezco de antemano
Hasta Luego
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder