Hola, es posible que el título de este tema deje intrigado a más de uno, pero es que mi situación es algo así como un capricho selectivo de MySQL resaltando mi desconocimiento en alguna operación de las que realizo.
Al grano tengo estas tablas:
Código MySQL:
Ver original
-- -----------------------------------------------------
-- Table `mydb`.`metodo`
-- -----------------------------------------------------
INDEX `fk_metodo_clase_idx` (`clase_idclase` ASC),
-- -----------------------------------------------------
-- Table `mydb`.`parametro`
-- -----------------------------------------------------
PRIMARY KEY (`idparametro`, `metodo_idmetodo`, `metodo_clase_idclase`), INDEX `fk_parametro_metodo1_idx` (`metodo_idmetodo` ASC, `metodo_clase_idclase` ASC), FOREIGN KEY (`metodo_idmetodo` , `metodo_clase_idclase`) REFERENCES `mydb`.
`metodo` (`idmetodo` , `clase_idclase`)
¡Algo muy simple cierto! La situación es que tal cual como esta funciona, sin embargo, cuando quiero crear la misma estructura de tablas con sus relaciones exactamente así solo cambiando el nombre de la base de datos por obvias razones algo así:
Código MySQL:
Ver original
-- -----------------------------------------------------
-- Table `otradb`.`metodo`
-- -----------------------------------------------------
INDEX `fk_metodo_clase_idx` (`clase_idclase` ASC),
-- -----------------------------------------------------
-- Table `otradb`.`parametro`
-- -----------------------------------------------------
PRIMARY KEY (`idparametro`, `metodo_idmetodo`, `metodo_clase_idclase`), INDEX `fk_parametro_metodo1_idx` (`metodo_idmetodo` ASC, `metodo_clase_idclase` ASC), FOREIGN KEY (`metodo_idmetodo` , `metodo_clase_idclase`) REFERENCES `otradb`.
`metodo` (`idmetodo` , `clase_idclase`)
En este caso otradb es una base de datos existente, tiene sus tablas y relaciones respectivas. Dejo claro que siempre uso por defecto innoDB para todas las tablas y que manejo el mismo conjunto de caracteres utf8, además ningún nombre de tabla se repite, ni tampoco existe algún índice con nombres duplicados o semejante. Lo cierto es todo esto me parte la cabeza…
Otro punto que quizás deba aclarar es que si hago por ejemplo esto:
Código MySQL:
Ver original-- -----------------------------------------------------
-- Table `otradb`.`parametro`
-- -----------------------------------------------------
PRIMARY KEY (`idparametro`, `metodo_idmetodo`, `metodo_clase_idclase`), INDEX `fk_parametro_metodo1_idx` (`metodo_idmetodo` ASC, `metodo_clase_idclase` ASC)
FOREIGN KEY (`metodo_idmetodo` , `metodo_clase_idclase`) REFERENCES ` otradb `.
`metodo` (`idmetodo` , `clase_idclase`)
Con eso si funciona ¿Qué es lo que pasa entonces? Ahora de seguro se preguntan porque me lió con todo esto si tengo la solución y el caso es sencillo, el primer método es como me lo genera la sincronización de modelo MySQL WORKBENCH y bueno me resulta muy cómodo solo presionar CRTL+SHIFT+Z y que se vaya actualizando mi base de datos según el modelo que voy dibujando.
Agradezco de antemano la atención prestada y recibo con afecto cualquier colaboración con respecto a este tema.