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 !