y no se como arreglarlo al hacer un insert a una tabla que es clave foranea de otra me aparece el siguiente error
#1452 - Cannot add or update a child row: a foreign key constraint fails (`gimnasio`.`detallecliente`, CONSTRAINT `fk_detalleCliente_persona1` FOREIGN KEY (`usuario_RUT`) REFERENCES `usuario` (`RUT`) ON DELETE NO ACTION ON UPDATE NO ACTION)
aqui esta como esta compuestas las tablas a ver si alguien me puede ayudar
Código MySQL :
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL'; CREATE SCHEMA IF NOT EXISTS `gimnasio` DEFAULT CHARACTER SET latin1 ; USE `gimnasio` ; -- ----------------------------------------------------- -- Table `gimnasio`.`perfil` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`perfil` ( `idperfil` INT NOT NULL AUTO_INCREMENT , `nombre` VARCHAR(45) NULL , PRIMARY KEY (`idperfil`) ) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `gimnasio`.`usuario` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`usuario` ( `RUT` VARCHAR(11) NOT NULL , `numCliente` INT(11) NOT NULL AUTO_INCREMENT , `primerNombre` VARCHAR(450) NULL DEFAULT NULL , `apellidoPaterno` VARCHAR(450) NULL DEFAULT NULL , `direccion` VARCHAR(450) NULL DEFAULT NULL , `comuna` VARCHAR(45) NULL DEFAULT NULL , `ocupacion` VARCHAR(450) NULL DEFAULT NULL , `fechaNacimiento` DATE NULL DEFAULT NULL , `fonoCasa` VARCHAR(45) NULL DEFAULT NULL , `fonoCelular` VARCHAR(45) NULL DEFAULT NULL , `fonoEmergencia` VARCHAR(45) NULL DEFAULT NULL , `perfil_idperfil` INT NOT NULL , `usuario` VARCHAR(45) NULL , `contrasena` VARCHAR(45) NULL , `apellidoMaterno` VARCHAR(45) NULL , `segundoNombre` VARCHAR(45) NULL , `correoElectronico` VARCHAR(45) NULL , PRIMARY KEY (`numCliente`, `RUT`, `perfil_idperfil`) , INDEX `fk_persona_perfil1` (`perfil_idperfil` ASC) , UNIQUE INDEX `numCliente_UNIQUE` (`numCliente` ASC) , UNIQUE INDEX `RUT_UNIQUE` (`RUT` ASC) , UNIQUE INDEX `usuario_UNIQUE` (`usuario` ASC) , CONSTRAINT `fk_persona_perfil1` FOREIGN KEY (`perfil_idperfil` ) REFERENCES `gimnasio`.`perfil` (`idperfil` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = MyISAM AUTO_INCREMENT = 9 DEFAULT CHARACTER SET = latin1; -- ----------------------------------------------------- -- Table `gimnasio`.`asistencia` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`asistencia` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `dia` DATE NOT NULL , `clientes_numCliente` INT(11) NOT NULL , `clientes_RUT` VARCHAR(11) NOT NULL , PRIMARY KEY (`id`, `clientes_numCliente`, `clientes_RUT`) , INDEX `fk_asistencia_clientes` (`clientes_numCliente` ASC, `clientes_RUT` ASC) , CONSTRAINT `fk_asistencia_clientes` FOREIGN KEY (`clientes_numCliente` , `clientes_RUT` ) REFERENCES `gimnasio`.`usuario` (`numCliente` , `RUT` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = MyISAM AUTO_INCREMENT = 9 DEFAULT CHARACTER SET = latin1; -- ----------------------------------------------------- -- Table `gimnasio`.`evaluacion` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`evaluacion` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `cuello` VARCHAR(100) NOT NULL , `hombro` VARCHAR(100) NOT NULL , `brazo` VARCHAR(100) NOT NULL , `cintura` VARCHAR(100) NOT NULL , `cadera` VARCHAR(100) NOT NULL , `muslo` VARCHAR(100) NOT NULL , `gemelo` VARCHAR(100) NOT NULL , `subescapular` VARCHAR(100) NOT NULL , `bicital` VARCHAR(100) NOT NULL , `tripical` VARCHAR(100) NOT NULL , `suprailiaco` VARCHAR(100) NOT NULL , `abdominal` VARCHAR(100) NOT NULL , `pantorrilla` VARCHAR(100) NOT NULL , `abdomen` VARCHAR(100) NOT NULL , `peso` VARCHAR(100) NOT NULL , `fecha` DATE NOT NULL , `imc` VARCHAR(100) NOT NULL , `icc` VARCHAR(100) NOT NULL , `persona_numCliente` INT(11) NOT NULL , `persona_RUT` VARCHAR(11) NOT NULL , PRIMARY KEY (`id`, `persona_numCliente`, `persona_RUT`) , INDEX `fk_evaluaciones_persona1` (`persona_numCliente` ASC, `persona_RUT` ASC) , CONSTRAINT `fk_evaluaciones_persona1` FOREIGN KEY (`persona_numCliente` , `persona_RUT` ) REFERENCES `gimnasio`.`usuario` (`numCliente` , `RUT` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = MyISAM AUTO_INCREMENT = 6 DEFAULT CHARACTER SET = latin1; -- ----------------------------------------------------- -- Table `gimnasio`.`log` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`log` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `error` VARCHAR(10000) NOT NULL , `fecha` DATETIME NOT NULL , `persona_numCliente` INT(11) NOT NULL , `persona_RUT` VARCHAR(11) NOT NULL , PRIMARY KEY (`id`) , INDEX `fk_log_persona1` (`persona_numCliente` ASC, `persona_RUT` ASC) , CONSTRAINT `fk_log_persona1` FOREIGN KEY (`persona_numCliente` , `persona_RUT` ) REFERENCES `gimnasio`.`usuario` (`numCliente` , `RUT` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = MyISAM DEFAULT CHARACTER SET = latin1; -- ----------------------------------------------------- -- Table `gimnasio`.`versiones` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`versiones` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `version` VARCHAR(100) NOT NULL , `detalle` VARCHAR(10000) NOT NULL , `fecha` DATETIME NOT NULL , PRIMARY KEY (`id`) ) ENGINE = MyISAM DEFAULT CHARACTER SET = latin1; -- ----------------------------------------------------- -- Table `gimnasio`.`detalleCliente` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`detalleCliente` ( `iddetalleCliente` INT NOT NULL AUTO_INCREMENT , `usuario_RUT` VARCHAR(11) NOT NULL , `lesiones` VARCHAR(45) NULL , `enfermedadesCardiacas` VARCHAR(45) NULL , `enfermedadesPrevias` VARCHAR(45) NULL , `problemasSensoriales` VARCHAR(45) NULL , `alergico` VARCHAR(45) NULL , `realizoActividad5` VARCHAR(45) NULL , `realizoActividad` VARCHAR(45) NULL , `frecuencia` VARCHAR(45) NULL , `tiempoDuracion` VARCHAR(45) NULL , `horasDuerme` VARCHAR(45) NULL , `fuma` VARCHAR(45) NULL , `fumaCuanto` VARCHAR(45) NULL , `bebe` VARCHAR(45) NULL , `bebeTipo` VARCHAR(45) NULL , `bebeFrecuencia` VARCHAR(45) NULL , `cafe` VARCHAR(45) NULL , `cafeTipo` VARCHAR(45) NULL , PRIMARY KEY (`iddetalleCliente`, `usuario_RUT`) , INDEX `fk_detalleCliente_persona1` (`usuario_RUT` ASC) , CONSTRAINT `fk_detalleCliente_persona1` FOREIGN KEY (`usuario_RUT` ) REFERENCES `gimnasio`.`usuario` (`RUT` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `gimnasio`.`planes` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`planes` ( `idplanes` INT NOT NULL AUTO_INCREMENT , `valor` VARCHAR(45) NULL , `nombre` VARCHAR(45) NULL , `detalle` VARCHAR(45) NULL , `codigo` VARCHAR(45) NULL , PRIMARY KEY (`idplanes`) ) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `gimnasio`.`descuento` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`descuento` ( `iddescuento` INT NOT NULL AUTO_INCREMENT , `nombre` VARCHAR(45) NULL , `valor` VARCHAR(45) NULL , `tipo` VARCHAR(45) NULL , PRIMARY KEY (`iddescuento`) ) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `gimnasio`.`detalleFacturacion` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`detalleFacturacion` ( `iddetalleFacturacion` INT NOT NULL AUTO_INCREMENT , `fechaFacturacion` VARCHAR(45) NULL , `avisoPago` VARCHAR(45) NULL , `detalleCliente_iddetalleCliente` INT NOT NULL , `detalleCliente_persona_RUT` VARCHAR(11) NOT NULL , `planes_idplanes` INT NOT NULL , `tipo` VARCHAR(45) NULL , `descuento_iddescuento` INT NOT NULL , PRIMARY KEY (`iddetalleFacturacion`, `detalleCliente_iddetalleCliente`, `detalleCliente_persona_RUT`, `planes_idplanes`) , INDEX `fk_detalleFacturacion_detalleCliente1` (`detalleCliente_iddetalleCliente` ASC, `detalleCliente_persona_RUT` ASC) , INDEX `fk_detalleFacturacion_planes1` (`planes_idplanes` ASC) , INDEX `fk_detalleFacturacion_descuento1` (`descuento_iddescuento` ASC) , CONSTRAINT `fk_detalleFacturacion_detalleCliente1` FOREIGN KEY (`detalleCliente_iddetalleCliente` , `detalleCliente_persona_RUT` ) REFERENCES `gimnasio`.`detalleCliente` (`iddetalleCliente` , `usuario_RUT` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_detalleFacturacion_planes1` FOREIGN KEY (`planes_idplanes` ) REFERENCES `gimnasio`.`planes` (`idplanes` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_detalleFacturacion_descuento1` FOREIGN KEY (`descuento_iddescuento` ) REFERENCES `gimnasio`.`descuento` (`iddescuento` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `gimnasio`.`privilegio` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`privilegio` ( `idprivilegio` INT NOT NULL AUTO_INCREMENT , `nombre` VARCHAR(45) NULL , `estado` VARCHAR(45) NULL , `perfil_idperfil` INT NOT NULL , PRIMARY KEY (`idprivilegio`, `perfil_idperfil`) , INDEX `fk_privilegio_perfil1` (`perfil_idperfil` ASC) , CONSTRAINT `fk_privilegio_perfil1` FOREIGN KEY (`perfil_idperfil` ) REFERENCES `gimnasio`.`perfil` (`idperfil` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `gimnasio`.`configuracion` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`configuracion` ( `idconfiguracion` INT NOT NULL AUTO_INCREMENT , `nombre` VARCHAR(45) NULL , `valor` VARCHAR(45) NULL , PRIMARY KEY (`idconfiguracion`) ) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `gimnasio`.`historial` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`historial` ( `idhistorial` INT NOT NULL , `detalle` VARCHAR(45) NULL , `fecha` DATETIME NULL , `persona_numCliente` INT(11) NOT NULL , `persona_RUT` VARCHAR(11) NOT NULL , `persona_perfil_idperfil` INT NOT NULL , PRIMARY KEY (`idhistorial`, `persona_numCliente`, `persona_RUT`, `persona_perfil_idperfil`) , INDEX `fk_historial_persona1` (`persona_numCliente` ASC, `persona_RUT` ASC, `persona_perfil_idperfil` ASC) , CONSTRAINT `fk_historial_persona1` FOREIGN KEY (`persona_numCliente` , `persona_RUT` , `persona_perfil_idperfil` ) REFERENCES `gimnasio`.`usuario` (`numCliente` , `RUT` , `perfil_idperfil` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `gimnasio`.`boleta` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`boleta` ( `idboleta` INT NOT NULL AUTO_INCREMENT , `fecha` VARCHAR(45) NULL , `valor` VARCHAR(45) NULL , PRIMARY KEY (`idboleta`) ) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `gimnasio`.`cuota` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`cuota` ( `idpago` INT NOT NULL AUTO_INCREMENT , `detalleFacturacion_iddetalleFacturacion` INT NOT NULL , `detalleFacturacion_detalleCliente_iddetalleCliente` INT NOT NULL , `detalleFacturacion_detalleCliente_persona_RUT` VARCHAR(11) NOT NULL , `detalleFacturacion_planes_idplanes` INT NOT NULL , `fecha` VARCHAR(45) NULL , `boleta_idboleta` INT NOT NULL , PRIMARY KEY (`idpago`, `detalleFacturacion_iddetalleFacturacion`, `detalleFacturacion_detalleCliente_iddetalleCliente`, `detalleFacturacion_detalleCliente_persona_RUT`, `detalleFacturacion_planes_idplanes`, `boleta_idboleta`) , INDEX `fk_pago_detalleFacturacion1` (`detalleFacturacion_iddetalleFacturacion` ASC, `detalleFacturacion_detalleCliente_iddetalleCliente` ASC, `detalleFacturacion_detalleCliente_persona_RUT` ASC, `detalleFacturacion_planes_idplanes` ASC) , INDEX `fk_cuota_boleta1` (`boleta_idboleta` ASC) , CONSTRAINT `fk_pago_detalleFacturacion1` FOREIGN KEY (`detalleFacturacion_iddetalleFacturacion` , `detalleFacturacion_detalleCliente_iddetalleCliente` , `detalleFacturacion_detalleCliente_persona_RUT` , `detalleFacturacion_planes_idplanes` ) REFERENCES `gimnasio`.`detalleFacturacion` (`iddetalleFacturacion` , `detalleCliente_iddetalleCliente` , `detalleCliente_persona_RUT` , `planes_idplanes` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_cuota_boleta1` FOREIGN KEY (`boleta_idboleta` ) REFERENCES `gimnasio`.`boleta` (`idboleta` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `gimnasio`.`producto` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`producto` ( `idproducto` INT NOT NULL AUTO_INCREMENT , `nombre` VARCHAR(45) NULL , `detalle` VARCHAR(45) NULL , `precio` VARCHAR(45) NULL , `codigo` VARCHAR(45) NULL , `cantidadStock` VARCHAR(45) NULL , PRIMARY KEY (`idproducto`) ) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `gimnasio`.`detalleBoleta` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`detalleBoleta` ( `iddetalleBoleta` INT NOT NULL AUTO_INCREMENT , `nombre` VARCHAR(45) NULL , `valor` VARCHAR(45) NULL , `boleta_idboleta` INT NOT NULL , `producto_idproducto` INT NOT NULL , PRIMARY KEY (`iddetalleBoleta`, `boleta_idboleta`) , INDEX `fk_detalleBoleta_boleta1` (`boleta_idboleta` ASC) , INDEX `fk_detalleBoleta_producto1` (`producto_idproducto` ASC) , CONSTRAINT `fk_detalleBoleta_boleta1` FOREIGN KEY (`boleta_idboleta` ) REFERENCES `gimnasio`.`boleta` (`idboleta` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_detalleBoleta_producto1` FOREIGN KEY (`producto_idproducto` ) REFERENCES `gimnasio`.`producto` (`idproducto` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `gimnasio`.`caja` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`caja` ( `idcaja` INT NOT NULL AUTO_INCREMENT , `cantidad` VARCHAR(45) NULL , `fecha` DATETIME NULL , `tipo` VARCHAR(45) NULL , `persona_numCliente` INT(11) NOT NULL , `persona_RUT` VARCHAR(11) NOT NULL , PRIMARY KEY (`idcaja`, `persona_numCliente`, `persona_RUT`) , INDEX `fk_caja_persona1` (`persona_numCliente` ASC, `persona_RUT` ASC) , CONSTRAINT `fk_caja_persona1` FOREIGN KEY (`persona_numCliente` , `persona_RUT` ) REFERENCES `gimnasio`.`usuario` (`numCliente` , `RUT` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `gimnasio`.`producto_has_planes` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `gimnasio`.`producto_has_planes` ( `producto_idproducto` INT NOT NULL AUTO_INCREMENT , `planes_idplanes` INT NOT NULL , PRIMARY KEY (`producto_idproducto`, `planes_idplanes`) , INDEX `fk_producto_has_planes_planes1` (`planes_idplanes` ASC) , CONSTRAINT `fk_producto_has_planes_producto1` FOREIGN KEY (`producto_idproducto` ) REFERENCES `gimnasio`.`producto` (`idproducto` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_producto_has_planes_planes1` FOREIGN KEY (`planes_idplanes` ) REFERENCES `gimnasio`.`planes` (`idplanes` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;