Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
Problemas con Foreign Keys ("can't create table... ")
Enviado por Fernando Poblete Arrau el día 5 de agosto de 2004
Hola, mi problema es:
tengo una tabla (la voy a llamar TablaA) con una Primary Key de dos campos, cada uno de los cuales es una Foreign Key hacia una Primary Key de otras tablas (TablaB y TablaC).
En la tabla A cree indices para ambos campos y todas las tablas son tipo InnoDB.
Estoy haciendo lo siguiente:
ALTER TABLE TablaA
ADD CONSTRAINT C1 FOREIGN KEY(campo1) REFERENCES TablaB(campoX) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE TablaB
ADD CONSTRAINT C2 FOREIGN KEY(campo2) REFERENCES TablaB(campoX) ON DELETE CASCADE ON UPDATE CASCADE;
Obtengo el siguiente mensaje de error:
ERROR 1005: Can't create table './test/#sql-84b_4.frm' (errno: 150)
Re: Problemas con Foreign Keys ("can't create table... ")
Enviado por Rodolfo Reyes el día 5 de agosto de 2004
En el segundo alter table estas haciendo un Alter Table de la tablaB y haciendo referencia ha la tablaB, en pocas palabras estas creando una relación de uno a muchos sobre la misma tabla.
Re: Problemas con Foreign Keys ("can't create table... ")
Enviado por Rodolfo Reyes el día 6 de agosto de 2004
Lo unico que se me ocurre es que los datos de los campos que tienes creados en al tablas TablaA que hacen referencia ha la TablaB y TablaC violen la integridad referencial, por lo cual no podrias crear las llaves foraneas.
Hola!!! yo tengo exacatemante el mismo problema de Fernando. Hasta el momento no he podido crear una sola llave foranea y mis tablas estan vacias. Estoy trabajando con la version 5.0.18 porque inclusive la baje pensando que era problemas de la 4..... por fa.. alquien que me de una ayudita. gracias... :-D
Anduve buscando y no encontraba la solucion, hasta que revisé y reviseé otra vez la BD y la definicion de las tablas, y tenia exactamente el mismo problema que vosotros pero habia definido que las llaves fueran exactamente declaradas como UNSIGNED lo que creaba el error 1005, una vez que correji eso se acabo el problema