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

Tabla con llaves foraneas

Estas en el tema de Tabla con llaves foraneas en el foro de Mysql en Foros del Web. Hola! Soy muy nuevo con esto de Mysql y he tenido problemas especialmente al realizar tablas con llaves foraneas. Al tratar de crear una tabla ...
  #1 (permalink)  
Antiguo 04/06/2008, 16:04
 
Fecha de Ingreso: junio-2008
Mensajes: 24
Antigüedad: 15 años, 9 meses
Puntos: 0
Tabla con llaves foraneas

Hola!

Soy muy nuevo con esto de Mysql y he tenido problemas especialmente al realizar tablas con llaves foraneas.

Al tratar de crear una tabla como sigue..

mysql> CREATE TABLE equipo (
-> idequipo int not null auto_increment,
-> idpropietario int not null,
-> equipomz varchar(50) not null,
-> equipomzid int not null,
-> usuariomz varchar(50) not null,
-> usuariomzid int not null,
-> idpais int not null,
-> iddivliga int not null,
-> idedoequipo int not null,
-> primary key(idequipo),
->
-> key (idpropietario),
-> foreign key (idpropietario)
-> references propietario(idpropietario)
-> ON DELETE NO ACTION
-> ON UPDATE CASCADE,
->
-> key (idpais),
-> foreign key (idpais)
-> references pais(idpais)
-> ON DELETE NO ACTION
-> ON UPDATE CASCADE,
->
-> key (iddivliga),
-> foreign key (iddivliga)
-> references iddivliga(iddivliga)
-> ON DELETE NO ACTION
-> ON UPDATE CASCADE,
->
-> key (idedoequipo),
-> foreign key (idedoequipo)
-> references edoequipo(idedoequipo)
-> ON DELETE NO ACTION
-> ON UPDATE CASCADE
-> ) ENGINE = INNODB;
ERROR 1005 (HY000): Can't create table './copa/equipo.frm' (errno: 150)

He intentado con los ejemplos que estan en algunas paginas y no he tenido mayor problema con las llaves foraneas pero al tratar de hacer mi tabla no puedo.

Ojala me puedan ayudar y aclarar el panorama.
  #2 (permalink)  
Antiguo 04/06/2008, 16:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Tabla con llaves foraneas

En principio, puede ser un error de referenciación.
Asegúrate que:
- Los campos referidos en sus tablas de origen sean realmente claves primarias. Un campo KEY no PRIMARY no sirve.
- Si las claves primarias de las tablas referenciadas son compuestas, la clave foránea debe ser compuesta de la misma forma.
- Asegúrate (muy importante) que los campos en ambas tablas sean del mismo tipo y las tablas también. No puedes referenciar un campo INT UNSIGNED a un campo INT. Ni tampoco una tabla MyISAM a una InnoDB, ni un campo que se corresponde con una COLLATION utf8 a otra latin1.
- Verifica que las tablas referidas sean creadas antes que la tabla que contiene las FK.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/06/2008, 16:31
 
Fecha de Ingreso: junio-2008
Mensajes: 24
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Tabla con llaves foraneas

Solucionado, el problema era porque no creaba antes las tablas "basicas" de donde la tabla con llaves foraneas iba a tomar informacion.
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 18:20.