Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Error al añadir clave extrangera(siguen los problemas)

Estas en el tema de Error al añadir clave extrangera(siguen los problemas) en el foro de Bases de Datos General en Foros del Web. Hola otra vez! Ya empiezo a desesperar porque lo de las foreign key no me funciona del todo, vamos a ver: Tres tablas: alunmo,asignatura y ...
  #1 (permalink)  
Antiguo 11/08/2005, 12:46
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 20 años, 6 meses
Puntos: 0
Error al añadir clave extrangera(siguen los problemas)

Hola otra vez!

Ya empiezo a desesperar porque lo de las foreign key no me funciona del todo, vamos a ver:

Tres tablas: alunmo,asignatura y profesor
Creo la primera tabla(alumno):

CREATE TABLE alumno (
nombre varchar(20) not null,
apellido1 varchar(20) not null,
apellido2 varchar(20) not null,
curso int not null,
tipoCurso varchar(20) not null,
correoElec varchar(20) not null,
dni varchar(9) not null,
primary key (dni),
foreign key (curso) references asignatura(curso) on delete cascade on update cascade,
foreign key (tipoCurso) references asignatura(tipoCurso) on delete cascade on update cascade) type=InnoDB;

Las dos foreign key no las puedo poner porque todavia no esta creada la tabla asignatura,por lo que las elimino y luego hago un alter table

CREATE TABLE alumno (

nombre varchar(20) not null,
apellido1 varchar(20) not null,
apellido2 varchar(20) not null,
curso int not null,
tipoCurso varchar(20) not null,
correoElec varchar(20) not null,
dni varchar(9) not null,
primary key (dni),
index (curso), index(tipoCurso)//lo dejo preparado para luego) type=InnoDB;

Segunda tabla(asignatura):
CREATE TABLE asignatura (

nomAsig varchar(20) not null,
curso int not null,
tipoCurso varchar(20) not null,
dniPro varchar(9) not null,
codAsig varchar(20) not null,
nomPro varchar(20) not null,
apePro varchar(20) not null,
primary key (nomAsig, curso, tipoCurso, dniPro, codAsig),
index(dniPro)) type=InnoDB;
El mismo problema de antes, la foreign key la elimino y luego hago el alter

Hago el alter de la tabla alumno:

alter table alumno add foreign key (curso) references asignatura(curso) on delete cascade;
alter table alumno add foreign key(tipoCurso) references asignatura(tipoCurso) on delete cascade;

Resultado=Can't create table '.\colegio\#sql-2b4_b6.frm' (errno: 150)

(no sigo con la siguiente es lo mismo)

Sabe alguien que es lo que no hago bien?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:07.