Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/09/2013, 00:36
dpruebas
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 16 años, 3 meses
Puntos: 0
Pregunta Error al relacionar claves foraneas en Clave compuesta

Un saludo,

Tengo tablas en una relación N:N así (subrayado es clave primaria):

primeratabla(idtabla1, otrocampo, yotro)
segundatabla(idtabla2,uncampomas,unomas)
relacion-primeratabla-segundatabla(idtabla1,idtabla2)

El problema es que no consigo hacer las relaciones de las llaves foraneas relacion-primeratabla-segundatabla con los id respectivos, el problema radica en no poder hacer los CONSTRAINT (ON DELETE & ON UPDATE).

Cuando lo intento, únicamente me deja poner UN CONSTRAINT en una clave foránea y ya en la segunda no me lo permite. Puedo hacerlo con ambas, es decir, ponerla a idtabla1 y ya no me deja a idtabla2, o ponerla a idtabla2 y ya no me deja a idtabla1.
  • He probado por interfaz (phpMyAdmin) en ordenes diferentes.
  • He probado creando la tabla sin claves y luego con otra consulta SQL ponerlas, o crear la tabla con indices (INDEX) únicamente y luego lo demás, o crear la tabla con claves foráneas, y todas las combinaciones posibles.
  • Alguna vez he conseguido hacerlo, pero al hacer una prueba (como actualizar un ON DELETE a RESTRIC en vez de CASCADE) desde phpMyAdmin, vuelve y arroja un error y borra toda la cuestión (Pone en blanco el ON DELETE y el ON UPDATE).

No entiendo porque no puedo, si tengo otras bases de datos donde lo he hecho (igual, mismo CHARSET (utf-8), mismo COLLATE(utf8_spanish_ci), mismo motor (INNODB)).

Llevo varios días buscando y probando, ya no tuve más opción.

Muchas gracias.