Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Mysql (http://www.forosdelweb.com/f86/)
-   -   Problemas al usar 2 Foreign Keys (http://www.forosdelweb.com/f86/problemas-usar-2-foreign-keys-493332/)

Lord Kazuky 28/05/2007 09:05

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!

Vincent_Vallentine 28/05/2007 11:31

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 ;)

Lord Kazuky 30/05/2007 08:00

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 !

Lord Kazuky 01/06/2007 20:33

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..


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

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.