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:
Si no tambien pense en declarar una variable y que su valor este como salida de la consulta alago asideclare 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;
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