Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: graphixx en Agosto 26, 2014, 05:41:35 PM

Título: [AYUDA] dbforge error creando relaciones en la base de datos, sale: (errno: 150)
Publicado por: graphixx en Agosto 26, 2014, 05:41:35 PM
Error on rename of'.\alertamedica\#sql-446c_3e' to '.\alertamedica\usuarios' (errno: 150)
(http://imagizer.imageshack.us/v2/280x200q90/540/nrgjsj.png) (https://imageshack.com/i/f0nrgjsjp)

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.




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:
(http://imagizer.imageshack.us/v2/280x200q90/906/u8ypVt.png) (https://imageshack.com/i/p6u8ypVtp)
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.
Título: Re:[AYUDA] dbforge error creando relaciones en la base de datos, sale: (errno: 150)
Publicado por: Cl0udswX en Agosto 30, 2014, 09:53:26 PM
Podrías darle una hojeada a este articulo, quizás te ayude.

http://www.databasejournal.com/features/mysql/article.php/3880961/Top-10-MySQL-GUI-Tools.htm (http://www.databasejournal.com/features/mysql/article.php/3880961/Top-10-MySQL-GUI-Tools.htm)

Saludos.