Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/02/2011, 12:34
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Error 150 en MySQL

El problema está en la foreign key.

Cuando defines en persona el id (al que haces referencia) lo declaras como INT UNSIGNED. En la tabla usuarios solo lo pones como INT. La referencia debe ser coincidente exactamente entre tipos de datos para evitar inconsistencias en los datos.

corrigelo por:
Código MySQL:
Ver original
  1. CREATE TABLE usuarios (
  2.   nombreUsuario VARCHAR(20) NOT NULL UNIQUE,
  3.   clave VARCHAR(75) NOT NULL,
  4.   activo ENUM('true','false') NOT NULL,
  5.  id_persona INT UNSIGNED NOT NULL,
  6.  PRIMARY KEY (id),
  7.  UNIQUE INDEX (id_persona),  -- tratando de hacer relacion 1 a 1, con INDEX unico
  8.  FOREIGN KEY (id_persona) REFERENCES personas (id)
  9. )
  10. DEFAULT CHARACTER SET = latin1
  11. COLLATE = latin1_general_cs
  12. COMMENT = 'Usuarios';

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming