Bueno esto es algo facil supongo pero no puedo hacerlo
El tema es asi... necesito insertar en una tabla un registro que tiene los campos codigo, indice. El codigo puede estar repetido o puede no estar por eso antes de insertar tengo que saber si esta, entonces si esta seleccione el indice mas alto y al nuevo registro le sumo 1. Si no esta directamente le pongo 1 al indice.
lo hago con un procedimiento almacenado pasandole como parametro el variablecodigo
algo asi
Código:
declare indicem int;
if exists (declare cursorindice cursor for select max(indice) from mov_com where codpro = variablecodigo) then
open cursoindice;
fetch cursorindice into indicem;
set indicem = indicem +1
insert into mov_com (codigo, indice) values (variablecodigo, indicem);
else
insert into mov_com (codigo, indice) values (variablecodigo, 1);
end if;
Si no tambien pense en declarar una variable y que su valor este como salida de la consulta alago asi
variable = select max(indice) from mov_com where codpro = variablecodigo
si variable el verdadera existe (hay registros), si es falsa no existe(no hay registros)
pero no se que tipo de variable usar y como usarla en este caso
pero eso no me funciona y no me refiero a la syntaxis del ejemplo, solo quiero saber cual seria la mejor forma de hacerlo
Si pueden ayudarme a optimizar el procedimiento les agredesco