Hola, sucede que estoy realizando mi primer proyecto tratando de crear un pequeño sistema que ayude a los doctores a gestionar sus pacientes. bueno, uno de los tantos problemas que presenta el proyecto es el siguiente:
Cita: Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`consultas`.`registroConsulta`, CONSTRAINT `fk_registroConsulta_fichaRegistro1` FOREIGN KEY (`fichaRegistro_idfichaRegistro`) REFERENCES `fichaRegistro` (`idfichaRegistro`) ON DELETE NO ACTION)' in /opt/lampp/htdocs/www/consultas/sistema/procesar_rc.php:27 Stack trace: #0 /opt/lampp/htdocs/www/consultas/sistema/procesar_rc.php(27): PDOStatement->execute(Array) #1 {main} thrown in /opt/lampp/htdocs/www/consultas/sistema/procesar_rc.php on line 27
lo que trato de hacer es, ingresar los datos de una consulta en un formulario, y esos datos deberán asociarse a al paciente en turno y guardarse en la bd como un "historial de consultas"
estuve googleando el error 1452 en stackoverflow y otros sitios para ver cual era el problema, si no mal entendí, se debe a que el foreing key debe de estar configurado ON CASCADE; ya que es mi primer diseño de bd quisiera descartar futuros errores en el diseño de la bd, por eso es que me gustaría que me apoyaran 1. con el error que manda mysql y 2. revisando mi diseño que realice en mysql workbench por si esta mal hecho
CODIGO SQL:
Código MySQL:
Ver original-- MySQL Workbench Forward Engineering
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,ALLOW_INVALID_DATES';
-- -----------------------------------------------------
-- Schema consultas
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema consultas
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Table `consultas`.`login`
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Table `consultas`.`fichaRegistro`
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Table `consultas`.`registroConsulta`
-- -----------------------------------------------------
PRIMARY KEY (`idregistroConsulta`, `fichaRegistro_idfichaRegistro`), INDEX `fk_registroConsulta_fichaRegistro1_idx` (`fichaRegistro_idfichaRegistro` ASC), REFERENCES `consultas`.
`fichaRegistro` (`idfichaRegistro`)
-- -----------------------------------------------------
-- Table `consultas`.`receta`
-- -----------------------------------------------------
`registroConsulta_idregistroConsulta` INT NOT NULL, `registroConsulta_fichaRegistro_idfichaRegistro` INT NOT NULL, PRIMARY KEY (`idreceta`, `registroConsulta_idregistroConsulta`, `registroConsulta_fichaRegistro_idfichaRegistro`), INDEX `fk_receta_registroConsulta1_idx` (`registroConsulta_idregistroConsulta` ASC, `registroConsulta_fichaRegistro_idfichaRegistro` ASC), FOREIGN KEY (`registroConsulta_idregistroConsulta` , `registroConsulta_fichaRegistro_idfichaRegistro`) REFERENCES `consultas`.
`registroConsulta` (`idregistroConsulta` , `fichaRegistro_idfichaRegistro`)
-- -----------------------------------------------------
-- Table `consultas`.`login_has_fichaRegistro`
-- -----------------------------------------------------
PRIMARY KEY (`login_idlogin`, `fichaRegistro_idfichaRegistro`), INDEX `fk_login_has_fichaRegistro_fichaRegistro1_idx` (`fichaRegistro_idfichaRegistro` ASC), INDEX `fk_login_has_fichaRegistro_login1_idx` (`login_idlogin` ASC), CONSTRAINT `fk_login_has_fichaRegistro_fichaRegistro1` REFERENCES `consultas`.
`fichaRegistro` (`idfichaRegistro`)
SET SQL_MODE
=@OLD_SQL_MODE
; SET FOREIGN_KEY_CHECKS
=@OLD_FOREIGN_KEY_CHECKS
; SET UNIQUE_CHECKS
=@OLD_UNIQUE_CHECKS
;
Saludos y de antemano gracias!