Buenos días amigos,
estoy creando una BD en MySQL que tiene 3 tablas: usuarios, tipousuario, usuariostipousuario
La tabla "
usuarios" posee campos para albergar información personal de cada usuario: idUsuario, nombre, apellidos, dni,... La
Primary Key es "
idUsuario".
La tabla "
tipousuario" posee dos campos: nombreTipo, descripcion. La
Primary Key es "
nombreTipo".
La tabla "
usuariostipousuario" posee dos campos: idUsuario, nombreTipo. Ambos campos son
Primary Keys. Cada campo posee una
Foreign Key, que está enlazada con
idUsuario de la tabla "usuarios" y con
nombreTipo de la tabla "tipousuario" respectivamente.
El problema es que no puedo crear "usuariostipousuario" con la clave ajena de "nombreTipo". O sea, acotando el problema, he conseguido localizar eso. Puedo crear la tabla "usuariostipousuario", crear las Primary Keys y crear la Foreign Key de idUsuario, pero no la de nombreTipo.
En la Web de MySQL se recoge dicho error. Exactamente dice:
Si MySQL informa que ocurrió un error número 1005 en una sentencia CREATE TABLE y la cadena con el mensaje de error se refiere al errno (número de error) 150, significa que la creación de una tabla falló debido a una restricción de clave foránea formulada incorrectamente. Del mismo modo, si un ALTER TABLE falla y hace referencia al número de error 150, significa que se ha formulado incorrectamente una restricción de clave extranjera cuando se alteró la tabla. En MySQL 5.0, puede emplearse SHOW INNODB STATUS para mostrar una explicación detallada del último error de clave foránea sufrido por InnoDB en el servidor.
Nota: InnoDB no verifica las restricciones de claves foráneas en las claves foráneas o valores de claves referenciados que contengan una columna NULL.
Fuente: http://dev.mysql.com/doc/refman/5.0/es/innodb-foreign-key-constraints.html
La cuestión importante es:
¿cómo soluciono este problema?
Muchas gracias de antemano por todo. Sois de gran ayuda. Un saludo.