 
			
				19/07/2011, 09:40
			
			
			     |  
        |     |    |    Fecha de Ingreso: enero-2008  Ubicación: En la ciudad de los Reyes LIMA !  
						Mensajes: 121
					  Antigüedad: 17 años, 9 meses Puntos: 2     |        |  
  |      insert con una condicion        Bueno lo que quiero hacer es algo simple pero increiblemente no me sale ...  
el primer procedure busca un canal ... y devuelve un valor numerico si encuentra algo  
si encuentra algo significa que el registro existe y ya no tengo que ingresarlo nuevamente .... pero sino devuelve nada hago un insert ... la cosa va mas o menos asi ....  
proce buscar  
Código:
  create procedure averias.buscarCanal(in nombre varchar(100), in numeroCanal int, in pais int, out flag1 int, out flag2 int)
BEGIN
select count(canal_idcanal) into flag1 from canalxpais where chid =  numeroCanal and pais_idpais = pais;
select count(idcanal) into flag2 from canal where nom_canal =  nombre;
END
   proce grabar  
Código:
  create procedure averias.grabarCanal(in nombre varchar(100), in genero varchar(45), in numeroCanal int, in tipo int, in mux int, in pais int)
BEGIN
		DECLARE flag INTEGER DEFAULT 0;
		call buscarCanal(pais,nombre);
		set flag = @flag1 + @flag2;
		case flag when 0 then 
				into canal(nom_canal,genero,origen_idorigen,tipo_canal_idtipo_canal,mux_idmux) values ('nombre','genero', null ,1,1,1)
		ELSE
		"canal ya existe"
		END CASE;
END
  aca me da un error   
Código:
  [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'case flag when 0 then 
				insert into canal(nom_canal,genero,origen_idorigen,t' at line 6
   que es justamente donde empieza el case ... 
AYUDA PLZ !            |