Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/07/2012, 13:29
cn16cn
 
Fecha de Ingreso: julio-2012
Mensajes: 12
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta Procedimeinto alamcenado con un IF NOT EXISTS sintasis correcta

Les explico, lo que sucede es que tengo un procedimeinto almacenado, lo construi en MYSQL WORKBEACH y no me marca ningun error hasta la hora de crearlo me marca un error de sintaxis en la linea 36 que es donde esta mi IF NOT EXISTS, he estado buscanod pero no encuentro una respuesta, lo que trato de hacer con esto esque si se el ID ya no existe agregue el registro y si existe lo actualize

Este es mi procedimiento
Código:
CREATE PROCEDURE agenda_pacientes(
IN pac_nom VARCHAR(100),
IN pac_ap VARCHAR(60),
IN pac_am VARCHAR(60),
IN pac_sex CHAR(1),
IN pac_fec VARCHAR(60),
IN pac_not VARCHAR(200),
IN dir_IDp VARCHAR(200),
IN dir_cal VARCHAR(100),
IN dir_num INT,
IN dir_col VARCHAR(100),
IN dir_mud VARCHAR(100),
IN dir_edo VARCHAR(100),
IN dir_cp INT,
IN dir_tel INT,
IN mad_nom VARCHAR(100),
IN mad_ap VARCHAR(60),
IN mad_am VARCHAR(60),
IN mad_fec VARCHAR(60),
IN mad_pes DECIMAL(10,3),
IN mad_est DECIMAL(10,2),
IN mad_not VARCHAR(200),
IN pad_nom VARCHAR(100),
IN pad_ap VARCHAR(60),
IN pad_am VARCHAR(60),
IN pad_fec VARCHAR(60),
IN pad_pes DECIMAL(10,3),
IN pad_est DECIMAL(10,2),
IN pad_not VARCHAR(200),
IN esc_IDd INT,
IN esc_gra VARCHAR(5),
IN esc_gru VARCHAR(5))

BEGIN
 IF NOT EXISTS (SELECT * FROM pacientes WHERE ID_paciente=dir_IDp) THEN
  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);
  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);
  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);
  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);
  INSERT INTO escuelas(ID_paciente,ID_dir_escuela,grado,grupo) VALUES (dir_IDp,esc_IDd,esc_gra,esc_gru);
  
 ELSE 
  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;  
  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;
  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;
  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;
  UPDATE escuelas SET ID_dir_escuela=esc_IDd, grado=esc_gra, grupo=esc_gru WHERE ID_paciente=dir_IDp;
 END IF;    
END;
Gracias

Última edición por cn16cn; 03/07/2012 a las 13:43