Problemas con Foreign Keys ("can\'t create table... ")
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)
¿alguien me puede ayudar?
Muchas gracias.
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)
¿alguien me puede ayudar?
Muchas gracias.
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.
Tienes razon, en realidad, me equivoque al tipearlo ahora aca en el foro. Ambos ALTER son sobre la tabla A.
Gracias pero el error no esta en eso.
Gracias pero el error no esta en eso.
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.
