Buenas tardes, tengo una funcion en mysql el cual pretende:

1. Verifica si el usuario existe en la tabla
2. Da de alta un registro si no existe el usuario
3. Si encuentra el usuario actualiza el registro

La opcion 1 y 2 si lo hace perfectamente, pero la 3 no, le paso parametros los cuales son el usuarioid, el usuario, clave, departamentoid, fecha de creacion pero pos no jala. Les dejo la funcion:

CREATE DEFINER = `admin`@`%` PROCEDURE `NewProc`(usu varchar(12),cla varchar(12),fec date,dep integer(5),nom varchar(80),op varchar(5))
BEGIN
declare existe varchar(5);
declare numusuid varchar(5);
declare usunuevo varchar(12);

# Verificamos si el usuario es nuevo
if op="" then
select usuario into usunuevo from sistema_usuarios where usuario=usu group by usuario;
if usunuevo=usu then
select 'USUARIO YA REGISTRADO';
else
select usuarioid into existe from sistema_usuarios where usuarioid=op;
if existe<>"" then
select existe;
update sistema_usuarios set clave=cla,deptoid=dep,nombre=nom where usuarioid=op;
select 'registro Actualizado';
else
set numusuid=usuarios_numero();
insert into sistema_usuarios values(numusuid,usu,cla,fec,'A',dep,nom);
select 'Registro insertado';
end if;
end if;
end if;
END;