
05/12/2018, 06:36
|
| | Fecha de Ingreso: agosto-2002 Ubicación: Lleida
Mensajes: 506
Antigüedad: 22 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 |