Ver Mensaje Individual
  #6 (permalink)  
Antiguo 02/10/2013, 11:23
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Perdida de Relaciones entre tablas (MyIsam to InnoDB)

Cita:
Eso si no estaba especificado el motor InnoDB, no se si por eso al crearla no tomo en cuenta las FK
Eso ya te lo aclaré específicamente:
Cita:
2) Lo que sí puede ocurrir es que los scripts de creación de las tablas no incluyeran la clasula ENGINE = InnoDB, o bien que el InnoDB no estuviese activado en el servidor de producción.
En el primer caso, MySQL aplica el motor de tablas por default definido en el servidor, por lo que si éste es MyISAM... pues descartará la creación de toda FK, sin ni siquiera darte una advertencia.
Es decir que tu query de creación de la tabla debería haber sido:
Código MySQL:
Ver original
  1. CREATE TABLE users (
  2.     id_user INT NOT NULL AUTO_INCREMENT,
  3.     id_profile INT NOT NULL,
  4.     username VARCHAR (40) NOT NULL,
  5.     pass VARCHAR(64) NOT NULL,
  6.     nombre VARCHAR(200),
  7.     id_canal VARCHAR(5),
  8.     clave_suc VARCHAR(30),
  9.     logeado bool NOT NULL DEFAULT FALSE,
  10.     UNIQUE KEY user (username),
  11.     CONSTRAINT PK PRIMARY KEY (id_user),
  12.     CONSTRAINT FK1 FOREIGN key (id_profile)
  13.         REFERENCES profile (id_profile) ON DELETE CASCADE ON UPDATE CASCADE,
  14.     CONSTRAINT FK2 FOREIGN key (id_canal)
  15.         REFERENCES canal_venta (id_canal) ON DELETE CASCADE ON UPDATE CASCADE,
  16.     CONSTRAINT FK3 FOREIGN key (clave_suc)
  17.         REFERENCES sucursales (clave_suc) ON DELETE CASCADE ON UPDATE CASCADE
  18. ) ENGINE=InnoDB; # Esto es lo que debía ir al final en cada CREATE de tabla.

Por favor, lee lo que se te responde. De lo contrario terminaremos dando vueltas en círculo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)