Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/12/2018, 06:36
mikil
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 8 meses
Puntos: 0
como evaluar los valores de un disparador

tengo el siguiente disparador after_insert
Código:
		SET @EXISTMAX = (SELECT count(*) as numreg from stockmon WHERE stockmon.idmonturaStock=substr(NEW.odcodigoLCVta,2,7) and stockmon.tdaStock=NEW.tdaLCVta);
		IF (@EXISTMAX > 0) THEN
			SET @EXISTMAX = (SELECT stockmon.maxStock FROM stockmon WHERE stockmon.idmonturaStock=substr(NEW.odcodigoLCVta,2,7) and stockmon.tdaStock=NEW.tdaLCVta);
		END IF;
		if (@EXISTMAX = 0) THEN	
			-- generem la comanda de la lentilla --
			INSERT INTO dblccomandes (dblccomandes.idrefvtaLCCmd, dblccomandes.tiendaLCCmd, dblccomandes.clienteLCCmd, dblccomandes.ventaLCCmd, dblccomandes.ojoLCCmd, 
			dblccomandes.codigoLCCmd,  dblccomandes.vdorLCCmd, dblccomandes.provLCCmd, dblccomandes.tipoLCCmd, dblccomandes.radio1LCCmd,
			dblccomandes.radio2LCCmd, dblccomandes.esferaLCCmd, dblccomandes.cilindroLCCmd, dblccomandes.ejesLCCmd, dblccomandes.diamLCCmd,
			dblccomandes.zonaLCCmd, dblccomandes.colorLCCmd, dblccomandes.blisterLCCmd, dblccomandes.geometriaLCCmd,
			dblccomandes.addLCCmd, dblccomandes.quantitatLCCmd, dblccomandes.fecpedLCCmd)
			values
			(NEW.idrefLCVta, NEW.tdaLCVta, NEW.clteLCVta, NEW.numvtaLCVta, "D", NEW.odcodigoLCVta, NEW.vendedorLCVta, NEW.graodfabrLCVta, NEW.graodtipoLCVta, NEW.graodradio1LCVta,
			NEW.graodradio2LCvta, NEW.graodesferaLCVta, NEW.graodcilindroLCVta, NEW.graodejesLCVta, NEW.graoddiamLCVta, NEW.graodzonaLCVta,
			NEW.graodcolorLCVta, "N", NEW.graodgeoLCVta, NEW.graodaddLCVta, NEW.odquantLCVta, NEW.fechaLCVta );
		END IF;
como puedo interregar la variable EXISTMAX, por que si lo hago manualmente el valor del pimer select es 1
se deberia ejecutar la segunda select, que si la ejecuto manualment devuelve un 2
por lo tanto no deberia ejecutar el insert, però lo hace.
o quizas hay algo en la sintaxis que est
gracias