Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/07/2015, 16:58
jonhjonhz
 
Fecha de Ingreso: julio-2014
Mensajes: 8
Antigüedad: 9 años, 9 meses
Puntos: 0
Pregunta FATAL ERROR: Integrity constraint violation: 1452 Cannot add or update a child row

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
  1. -- MySQL Workbench Forward Engineering
  2.  
  3. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
  4. SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
  5. SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
  6.  
  7. -- -----------------------------------------------------
  8. -- Schema consultas
  9. -- -----------------------------------------------------
  10.  
  11. -- -----------------------------------------------------
  12. -- Schema consultas
  13. -- -----------------------------------------------------
  14. CREATE SCHEMA IF NOT EXISTS `consultas` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
  15. USE `consultas` ;
  16.  
  17. -- -----------------------------------------------------
  18. -- Table `consultas`.`login`
  19. -- -----------------------------------------------------
  20. CREATE TABLE IF NOT EXISTS `consultas`.`login` (
  21.   `idlogin` INT NOT NULL AUTO_INCREMENT,
  22.   `usernameLog` VARCHAR(15) NOT NULL,
  23.   `passLog` VARCHAR(25) NOT NULL,
  24.   `registroLog` DATETIME NOT NULL,
  25.   PRIMARY KEY (`idlogin`))
  26. DEFAULT CHARACTER SET = utf8
  27. COLLATE = utf8_general_ci;
  28.  
  29.  
  30. -- -----------------------------------------------------
  31. -- Table `consultas`.`fichaRegistro`
  32. -- -----------------------------------------------------
  33. CREATE TABLE IF NOT EXISTS `consultas`.`fichaRegistro` (
  34.   `idfichaRegistro` INT NOT NULL AUTO_INCREMENT,
  35.   `primNombre` VARCHAR(25) NULL,
  36.   `secNombre` VARCHAR(25) NULL,
  37.   `fichaRegistrocol` VARCHAR(25) NULL,
  38.   `apellidoP` VARCHAR(25) NULL,
  39.   `apellidoM` VARCHAR(25) NULL,
  40.   `telCasa` INT(12) NULL,
  41.   `telCel` INT(12) NULL,
  42.   `otroTel` INT(12) NULL,
  43.   `direccion` VARCHAR(50) NULL,
  44.   `edoCivil` VARCHAR(15) NULL,
  45.   `email` VARCHAR(25) NULL,
  46.   `tipoSanguineo` VARCHAR(45) NULL,
  47.   `alergias` VARCHAR(25) NULL,
  48.   `fechaNac` DATE NULL,
  49.   `ciudad` VARCHAR(32) NULL,
  50.   `ocupacion` VARCHAR(25) NULL,
  51.   `recomienda` VARCHAR(25) NULL,
  52.   PRIMARY KEY (`idfichaRegistro`))
  53. DEFAULT CHARACTER SET = utf8
  54. COLLATE = utf8_general_ci;
  55.  
  56.  
  57. -- -----------------------------------------------------
  58. -- Table `consultas`.`registroConsulta`
  59. -- -----------------------------------------------------
  60. CREATE TABLE IF NOT EXISTS `consultas`.`registroConsulta` (
  61.   `idregistroConsulta` INT NOT NULL AUTO_INCREMENT,
  62.   `motivoConsulta` TINYTEXT NULL,
  63.   `tratamiento` MEDIUMTEXT NULL,
  64.   `imgdiagnostico` MEDIUMTEXT NULL,
  65.   `labs` MEDIUMTEXT NULL,
  66.   `observaciones` MEDIUMTEXT NULL,
  67.   `fichaRegistro_idfichaRegistro` INT NOT NULL,
  68.   PRIMARY KEY (`idregistroConsulta`, `fichaRegistro_idfichaRegistro`),
  69.   INDEX `fk_registroConsulta_fichaRegistro1_idx` (`fichaRegistro_idfichaRegistro` ASC),
  70.   CONSTRAINT `fk_registroConsulta_fichaRegistro1`
  71.     FOREIGN KEY (`fichaRegistro_idfichaRegistro`)
  72.     REFERENCES `consultas`.`fichaRegistro` (`idfichaRegistro`)
  73. DEFAULT CHARACTER SET = utf8
  74. COLLATE = utf8_general_ci;
  75.  
  76.  
  77. -- -----------------------------------------------------
  78. -- Table `consultas`.`receta`
  79. -- -----------------------------------------------------
  80. CREATE TABLE IF NOT EXISTS `consultas`.`receta` (
  81.   `idreceta` INT NOT NULL AUTO_INCREMENT,
  82.   `contReceta` MEDIUMTEXT NULL,
  83.   `registroConsulta_idregistroConsulta` INT NOT NULL,
  84.   `registroConsulta_fichaRegistro_idfichaRegistro` INT NOT NULL,
  85.   PRIMARY KEY (`idreceta`, `registroConsulta_idregistroConsulta`, `registroConsulta_fichaRegistro_idfichaRegistro`),
  86.   INDEX `fk_receta_registroConsulta1_idx` (`registroConsulta_idregistroConsulta` ASC, `registroConsulta_fichaRegistro_idfichaRegistro` ASC),
  87.   CONSTRAINT `fk_receta_registroConsulta1`
  88.     FOREIGN KEY (`registroConsulta_idregistroConsulta` , `registroConsulta_fichaRegistro_idfichaRegistro`)
  89.     REFERENCES `consultas`.`registroConsulta` (`idregistroConsulta` , `fichaRegistro_idfichaRegistro`)
  90. DEFAULT CHARACTER SET = utf8
  91. COLLATE = utf8_general_ci;
  92.  
  93.  
  94. -- -----------------------------------------------------
  95. -- Table `consultas`.`login_has_fichaRegistro`
  96. -- -----------------------------------------------------
  97. CREATE TABLE IF NOT EXISTS `consultas`.`login_has_fichaRegistro` (
  98.   `login_idlogin` INT NOT NULL,
  99.   `fichaRegistro_idfichaRegistro` INT NOT NULL,
  100.   PRIMARY KEY (`login_idlogin`, `fichaRegistro_idfichaRegistro`),
  101.   INDEX `fk_login_has_fichaRegistro_fichaRegistro1_idx` (`fichaRegistro_idfichaRegistro` ASC),
  102.   INDEX `fk_login_has_fichaRegistro_login1_idx` (`login_idlogin` ASC),
  103.   CONSTRAINT `fk_login_has_fichaRegistro_login1`
  104.     FOREIGN KEY (`login_idlogin`)
  105.     REFERENCES `consultas`.`login` (`idlogin`)
  106.   CONSTRAINT `fk_login_has_fichaRegistro_fichaRegistro1`
  107.     FOREIGN KEY (`fichaRegistro_idfichaRegistro`)
  108.     REFERENCES `consultas`.`fichaRegistro` (`idfichaRegistro`)
  109. DEFAULT CHARACTER SET = utf8
  110. COLLATE = utf8_general_ci;
  111.  
  112.  
  113. SET SQL_MODE=@OLD_SQL_MODE;
  114. SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
  115. SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Saludos y de antemano gracias!

Última edición por gnzsoloyo; 14/07/2015 a las 18:03