Cannot add or update a child row: a foreign key constraint fails (`logofiles/roles`, CONSTRAINT `roles_ibfk_1` FOREIGN KEY (`clave`) REFERENCES `usuario` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE).
El esquema de la base de datos es el siguiente:
Código:
El campo ID de la tabla usuario es la clave ajena/foranea y debe coincidir con el campo usuario de la tabla roles. La tabla roles la uso para definir el tipo de acceso que tenga cada usuario (administrador o usuario normal).CREATE TABLE IF NOT EXISTS `roles` ( `clave` int(11) NOT NULL auto_increment, `usuario` int(11) NOT NULL, `acceso` int(11) NOT NULL, PRIMARY KEY (`clave`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; CREATE TABLE IF NOT EXISTS `usuario` ( `ID` int(11) NOT NULL auto_increment, `nombre` varchar(100) NOT NULL, `user` varchar(50) NOT NULL, `pass` varchar(50) NOT NULL, `correo` varchar(100) NOT NULL, PRIMARY KEY (`ID`), UNIQUE KEY `usuario` (`user`,`correo`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ; ALTER TABLE `roles` ADD CONSTRAINT `roles_ibfk_1` FOREIGN KEY (`clave`) REFERENCES `usuario` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE;
La inserción la hago primero en la tabla usuario y luego en la tabla roles, pero me da el error comentado, ¿alguien podría echarme una mano?