Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/02/2009, 20:44
matiasdagatti
 
Fecha de Ingreso: noviembre-2007
Mensajes: 133
Antigüedad: 16 años, 5 meses
Puntos: 0
saber si existe

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