Ver Mensaje Individual
  #14 (permalink)  
Antiguo 14/04/2011, 12:08
y0mism0
 
Fecha de Ingreso: diciembre-2007
Mensajes: 135
Antigüedad: 17 años
Puntos: 1
Respuesta: Integridad referencial con MySql Workbench

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Vamos por partes:
1) No existen las FOREIGN KEY en MyISAM. No son parte del modelo de ese motor de tablas. Sólo existen en InnoDB, por lo que puedes definirlas cuantas veces quieras y jamás aparecerán.
2) ¿Qué versión de Workbench estás usando?
3) No me estás mostrando la solapa del diagrama (EER Diagram), sino la de Model Overview. Postea la del diagrama gráfico.

Uso la version 5.2.31 CE

Verás, es que la captura que te puse no la hice yo, es de internet. es lo mismo que me sale a mi, pero no me fije en la pestaña de diagram, esa no me sale a mi por ningún sitio.

Por cierto, he cambiado las tablas a InnoDB y me sale el siguiente error al intentar poner la foreign key:

Código:
ERROR 1005: Can't create table 'proyecto.#sql-82c_2' (errno: 150)

SQL Statement:

ALTER TABLE `proyecto`.`authorities` 

  ADD CONSTRAINT `fk_username`

  FOREIGN KEY (`username` )

  REFERENCES `proyecto`.`users` (`username` )

  ON DELETE NO ACTION

  ON UPDATE NO ACTION

, ADD INDEX `fk_username` (`username` ASC)



ERROR: Error when running failback script. Details follow.



ERROR 1046: No database selected

SQL Statement:

CREATE TABLE `authorities` (

  `username` varchar(45) NOT NULL,

  `authority` varchar(50) NOT NULL,

  PRIMARY KEY (`authority`,`username`),

  UNIQUE KEY `ix_auth_username` (`username`,`authority`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1
He probado a hacer una tabla de prueba y ponerla y me ha funcionado, ¿voy a tener que crear todas las tablas de nuevo?
Por alguna razon me crea las tablas por defecto en MyISAM, y ya le he puesto en preferences que use InnoDB pero nada.

Gracias

Saludos