[AYUDA] dbforge error creando relaciones en la base de datos, sale: (errno: 150)

Iniciado por Graphixx, 26 Agosto 2014, 22:38 PM

0 Miembros y 1 Visitante están viendo este tema.

Graphixx

Error on rename of'.\alertamedica\#sql-446c_3e' to '.\alertamedica\usuarios' (errno: 150)


Codigo SQL de la BD:
Tabla principal:
Código (sql) [Seleccionar]

CREATE TABLE alertamedica.usuarios (
  id INT(11) DEFAULT NULL,
  cedula VARCHAR(30) DEFAULT NULL,
  codigo VARCHAR(30) DEFAULT NULL,
  email VARCHAR(200) DEFAULT NULL,
  CONSTRAINT FK_usuarios_alergias_cedula FOREIGN KEY (cedula)
    REFERENCES alertamedica.alergias(cedula) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT FK_usuarios_avisar_cedula FOREIGN KEY (cedula)
    REFERENCES alertamedica.avisar(cedula) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT FK_usuarios_datos_personales_cedula FOREIGN KEY (cedula)
    REFERENCES alertamedica.datos_personales(cedula) ON DELETE NO ACTION ON UPDATE NO ACTION
)
ENGINE = INNODB
CHARACTER SET latin1
COLLATE latin1_swedish_ci;


Tabla secundaria correctamente relacionada:
Código (sql) [Seleccionar]

CREATE TABLE alertamedica.alergias (
  id INT(11) DEFAULT NULL,
  cedula VARCHAR(30) DEFAULT NULL,
  descripcion VARCHAR(1000) DEFAULT NULL,
  UNIQUE INDEX UK_alergias_cedula (cedula)
)
ENGINE = INNODB
CHARACTER SET latin1
COLLATE latin1_swedish_ci;


Tabla que quiero relacionar por campo cedula, igual que alergias a usuarios
Código (sql) [Seleccionar]

CREATE TABLE alertamedica.condiciones_medicas (
  id INT(11) DEFAULT NULL,
  cedula VARCHAR(30) DEFAULT NULL,
  enfermedades TEXT DEFAULT NULL,
  analisis_azucar_sang CHAR(5) DEFAULT NULL,
  analisis_colesterol_sangre TEXT DEFAULT NULL,
  vacunas TEXT DEFAULT NULL,
  alergias TEXT DEFAULT NULL,
  prob_circ_sanguinea TEXT DEFAULT NULL,
  UNIQUE INDEX UK_condiciones_medicas_cedula (cedula)
)
ENGINE = INNODB
CHARACTER SET latin1
COLLATE latin1_swedish_ci;


Alguna idea de por que sale ese error, me dejo relacionar 3 tablas secundarias y empezo a sacar ese error 150.
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog

Graphixx

Si borro todo y empiezo desde 0 pero a punta de consola, haciendo:
Código (sql) [Seleccionar]

CREATE TABLE usuarios (
 id INT(11) DEFAULT NULL,
 cedula VARCHAR(30) DEFAULT NULL,
 codigo VARCHAR(30) DEFAULT NULL,
 email VARCHAR(200) DEFAULT NULL,
 CONSTRAINT FK_usuarios_alergias_cedula FOREIGN KEY (cedula)
   REFERENCES alertamedica_pruebas.alergias(cedula) ON DELETE NO ACTION ON UPDATE NO ACTION,
 CONSTRAINT FK_usuarios_avisar_cedula FOREIGN KEY (cedula)
   REFERENCES alertamedica_pruebas.avisar(cedula) ON DELETE NO ACTION ON UPDATE NO ACTION,
 CONSTRAINT FK_usuarios_datos_personales_cedula FOREIGN KEY (cedula)
   REFERENCES alertamedica_pruebas.datos_personales(cedula) ON DELETE NO ACTION ON UPDATE NO ACTION,
 CONSTRAINT FK_usuarios_condiciones_medicas_cedula FOREIGN KEY (cedula)
   REFERENCES alertamedica_pruebas.condiciones_medicas(cedula) ON DELETE NO ACTION ON UPDATE NO ACTION
)
ENGINE = INNODB
CHARACTER SET latin1
COLLATE latin1_swedish_ci;

El sistema me recibe la relacion, pero por la interfaz grafica del dbforge no  :-(

Y cuando cargo las bases de datos al DBForge vaya que toma la relacion:

No entiendo por que esta saliendo ese error en el IDE, figuro hacerlo a la vieja escuela, y modelar toda mi DB por consola, increible.

PD: Si alguien conoce algun otro IDE para modelar bases de datos que no sea workbench o dbforge, se le agradece.
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog