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

Problemas al usar 2 Foreign Keys

Estas en el tema de Problemas al usar 2 Foreign Keys en el foro de Mysql en Foros del Web. Saludos! Tengo algunos problemas al relacionar 3 Tablas en MySQL Resulta que segun el Modelo Entidad-Relacion la tabla ' Pedido ' hace referencia a una ...
  #1 (permalink)  
Antiguo 28/05/2007, 09:05
Avatar de Lord Kazuky  
Fecha de Ingreso: junio-2006
Ubicación: 7F.00.00.01
Mensajes: 123
Antigüedad: 17 años, 10 meses
Puntos: 5
Pregunta Problemas al usar 2 Foreign Keys

Saludos!

Tengo algunos problemas al relacionar 3 Tablas en MySQL

Resulta que segun el Modelo Entidad-Relacion la tabla 'Pedido' hace referencia a una tabla de 'clientes' y otra de 'producto'. Al colocar la primera llave foranea a 'clientes' no hay problema pero al referenciar a 'producto' ya me saca error.

Los campos tienen la misma estructura, el mismo nombre, son indices. De hecho MySQL me deja hacer una relacion ya sea con la tabla de 'clientes' solamente, o con la de 'producto' solamente pero cuando coloco las 2 relaciones me saca:

"Error No. 1005"
"Can't create table '/directorio/#sql-2c14_1816.frm' (errno: 150) "


Estoy usando MySQL version "5.0.22-log"
Servidor: Linux Suse 10
Cliente: SQLyog 5.29 (Windows)
Todas las tablas son InnoDB.

Igual tambien lo probe de forma local con un MySQL windows en la ultima version y tampoco me funciona

Nose que puede ser, haber si alguno me puede ayudar , se le agradece :)

Muchas Gracias!
__________________
Saludos.
"Cualquier tonto puede escribir código que un computador entiende. Los buenos programadores escriben código que los humanos pueden entender. ;)"
  #2 (permalink)  
Antiguo 28/05/2007, 11:31
Avatar de Vincent_Vallentine  
Fecha de Ingreso: diciembre-2005
Mensajes: 40
Antigüedad: 18 años, 5 meses
Puntos: 0
Re: Problemas al usar 2 Foreign Keys

Producto N----1 Pedido 1-----M Cliente

Imagino que es esto lo que quieres decir. En este caso te debería dejar hacer las 2 foraneas, las cuales son las dos juntas a la vez la clave principal... pero ten en cuenta que esto es mySQL, y por mucho que relaciones las tablas en la mayoría de sitios luego no te servirá de nada... Cada vez en la consulta tienes que hacer la relación (ej: select * from producto, pedido, cliente where producto.codigo = pedido.codigo and pedido.dni = cliente.dni), asi que no te preocupes demasiado que luego las relaciones las puedes poner tu como quieras ;)
  #3 (permalink)  
Antiguo 30/05/2007, 08:00
Avatar de Lord Kazuky  
Fecha de Ingreso: junio-2006
Ubicación: 7F.00.00.01
Mensajes: 123
Antigüedad: 17 años, 10 meses
Puntos: 5
Re: Problemas al usar 2 Foreign Keys

Bueno, la preocupacion se debe a que debo subir una gran cantidad de datos que vienen de otra Base de datos, esto me toco hacerlo hace poco pero por la falta de Integridad se me "colgaron" ciertos registros erroneos (porque la otra BD no tiene buena integridad)

De todas formas pues la preocupacion es porque estas cosas se deberian hacer sin ningun problema. Aunque seguro debe ser alguna bobada, nose si a alguien mas le ha pasado, falta alguna opcion de configuracion del servidor, o alguna cosa que yo desconozca

Gracias !
__________________
Saludos.
"Cualquier tonto puede escribir código que un computador entiende. Los buenos programadores escriben código que los humanos pueden entender. ;)"
  #4 (permalink)  
Antiguo 01/06/2007, 20:33
Avatar de Lord Kazuky  
Fecha de Ingreso: junio-2006
Ubicación: 7F.00.00.01
Mensajes: 123
Antigüedad: 17 años, 10 meses
Puntos: 5
Sonrisa Re: Problemas al usar 2 Foreign Keys

Ya encontre la solucion!!

Despues de haber probado en distintas herrmientas, MYSQL Front, el mismo Query Browser, y en todos pasaba exactamente lo mismo.

Entonces luego pase toda la estructura vacia a una nueva base de datos, para evitar problemas por datos inexistentes y cosas asi.

Pero el problema persistia.. entonces weno ya no me confie mas de las herramientas y guiado por el manual de Mysql, pues hice el SQL para generar la tabla con las dos llaves foraneas.

y weno funciono!

La diferencia con lo que estaba haciendo antes, es que antes creaba las tablas SIN RELACIONES y luego modificaba, supongo que la herramienta las hacia con ALTER TABLE .. pero pasaba lo que comente antes.

Entonces lo que hay que hacer es Crear las tablas incluyendo sus llaves foraneas y demas resticciones, en la misma sentencia del CREATE TABLE.

Ojala que esto le sirva a alguien mas..
__________________
Saludos.
"Cualquier tonto puede escribir código que un computador entiende. Los buenos programadores escriben código que los humanos pueden entender. ;)"
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




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