Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

como evaluar los valores de un disparador

Estas en el tema de como evaluar los valores de un disparador en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 05/12/2018, 06:36
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 7 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

Etiquetas: disparador, evaluar, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:07.