Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/07/2012, 14:19
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 4 meses
Puntos: 2658
Respuesta: Procedimeinto alamcenado con un IF NOT EXISTS sintasis correcta

A veces me ha pasado que el NOT EXIST no me resulta en ese contexto:
Código MySQL:
Ver original
  1. CREATE PROCEDURE agenda_pacientes(
  2. IN pac_nom VARCHAR(100),
  3. IN pac_ap VARCHAR(60),
  4. IN pac_am VARCHAR(60),
  5. IN pac_sex CHAR(1),
  6. IN pac_fec VARCHAR(60),
  7. IN pac_not VARCHAR(200),
  8. IN dir_IDp VARCHAR(200),
  9. IN dir_cal VARCHAR(100),
  10. IN dir_num INT,
  11. IN dir_col VARCHAR(100),
  12. IN dir_mud VARCHAR(100),
  13. IN dir_edo VARCHAR(100),
  14. IN dir_cp INT,
  15. IN dir_tel INT,
  16. IN mad_nom VARCHAR(100),
  17. IN mad_ap VARCHAR(60),
  18. IN mad_am VARCHAR(60),
  19. IN mad_fec VARCHAR(60),
  20. IN mad_pes DECIMAL(10,3),
  21. IN mad_est DECIMAL(10,2),
  22. IN mad_not VARCHAR(200),
  23. IN pad_nom VARCHAR(100),
  24. IN pad_ap VARCHAR(60),
  25. IN pad_am VARCHAR(60),
  26. IN pad_fec VARCHAR(60),
  27. IN pad_pes DECIMAL(10,3),
  28. IN pad_est DECIMAL(10,2),
  29. IN pad_not VARCHAR(200),
  30. IN esc_IDd INT,
  31. IN esc_gra VARCHAR(5),
  32. IN esc_gru VARCHAR(5))
  33.  
  34.  IF (SELECT * FROM pacientes WHERE ID_paciente=dir_IDp) IS NULL THEN
  35.   INSERT INTO pacientes (nombre,ap_paterno,ap_materno,sexo,fecha_nacimiento,nota) values (pac_nom,pac_ap,pac_am,pac_sex,pac_fec,pac_not);
  36.   INSERT INTO direcciones (ID_paciente,calle,numero,colonia,municipio_delegacion,estado,cod_postal,telefono) VALUES (dir_IDp,dir_cal,dir_num,dir_col,dir_mud,dir_edo,dir_cp,dir_tel);
  37.   INSERT INTO madres (ID_paciente,nombre,ap_paterno,ap_materno,fecha_nacimiento,peso,estatura,nota) VALUES (dir_IDp,mad_nom,mad_ap,mad_am,mad_fec,mad_pes,mad_est,mad_not);
  38.   INSERT INTO padres (ID_paciente,nombre,ap_paterno,ap_materno,fecha_nacimiento,peso,estatura,nota) VALUES (dir_IDp,pad_nom,pad_ap,pad_am,pad_fec,pad_pes,pad_est,pad_not);
  39.   INSERT INTO escuelas(ID_paciente,ID_dir_escuela,grado,grupo) VALUES (dir_IDp,esc_IDd,esc_gra,esc_gru);
  40.  
  41.  ELSE
  42.   UPDATE pacientes SET nombre=pac_nom, ap_paterno=pac_ap, ap_materno=pac_am, sexo=pac_sex, fecha_nacimiento=pac_fec, nota=pac_not WHERE ID_paciente=dir_IDp;  
  43.   UPDATE direcciones SET calle=dir_cal. numero=dir_num, colonia=dir_col,municipio_delegacion=dir_mud, cod_postal=dir_cp,telefono=dir_tel WHERE ID_paciente=dir_IDp;
  44.   UPDATE madres SET nombre=mad_nom, ap_paterno=mad_ap, ap_materno=mad_am, fecha_nacimiento=mad_fec, peso=mad_pes, estatura=mad_est, nota=mad_not WHERE ID_paciente=dir_IDp;
  45.   UPDATE padres SET nombre=pad_nom, ap_paterno=pad_ap, ap_materno=pad_am, fecha_nacimiento=pad_fec, peso=pad_pes, estatura=pad_est, nota=pad_not WHERE ID_paciente=dir_IDp;
  46.   UPDATE escuelas SET ID_dir_escuela=esc_IDd, grado=esc_gra, grupo=esc_gru WHERE ID_paciente=dir_IDp;
  47.  END IF;    
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 03/07/2012 a las 14:47