From: Max Bube Date: May 4 2012 8:22pm Subject: Re: Procedimiento en MySQL List-Archive: http://lists.mysql.com/mysql-es/3930 Message-Id: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary=20cf3079b79836164e04bf3baef5 --20cf3079b79836164e04bf3baef5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable No deberia ser BEFORE INSERT en lugar de AFTER UPDATE?? El 4 de mayo de 2012 17:15, Oscar Martinez Mejia escribi=F3: > Se=F1ores > > Gracias por la colaboracion recibida, les agradeceria hecharon un vistazo > haber que estoy haciendo mal > > Ejecuto el LOAD DATA y perfecto > > LOAD DATA LOCAL INFILE 'C:\\BI\\Pentaho\\kt\\MOVIMIENTO_VENTAS.txt' INTO > TABLE `dwhjirafa`.`movimientos_venta` LINES TERMINATED BY '\r' > (`ID_DOCUMENTO_VENTA`, `TIPO_DOCUMENTO_VENTA`, `ID_DOCUMENTO_MOVIMIENTO`, > `ID_ITEM`, `NUMERO_TRANSACCION`, `FECHA_DOCUMENTO`, `ID_BODEGA`, > `INDICADOR_ES`, `ID_CONCEPTO`, `ID_MOTIVO`, `CANTIDAD_UNO`, `CANTIDAD_DOS= `, > `COSTO_TOTAL`, `UNIDAD_MEDIDA`, `FACTOR`, `PRECIO_UNITARIO`, `VALOR_BRUTO= `, > `DESCUENTO_LINEA_1`, `DESCUENTO_LINEA_2`, `DESCUENTO_GLOBLA_1`, > `DESCUENTO_GLOBLA_2`, `DESCUENTO_GLOBLAL_1`, `DESCUENTO_GLOBLAL_2`, > `TASA_IVA`, `VALOR_IVA`, `VALOR_NETO`, `LISTA_PRECIOS`, `LISTA_DESCUENTOS= `, > `ID_CENTRO_OPERACION_CONSUMO`, `INDICADOR_ANULADO`, `ID_TERCERO`, > `ID_TERCERO_SUCURSAL`, `LAPSO`, `NUEVA_EXISTISTENCIA`, `ID_EMPRESA`, > `ID_CENTRO_OPERAC`, `TIPO_DOCUMENTO`, `NUMERO_DOCUMENTO`, > `ID_NUMERO_FACTURA`, `ID_ORDEN_CARGUE`, `ID_NUMERO_PEDIDO`, `DESPACHAR_A`= , > `ID_CIUDAD`, `ID_CENTRO_COSTO`, `ID_VENDEDOR`); > > Pero no se ejecuta el trigger cuando se termina de > > DELIMITER // > CREATE TRIGGER ACTUALIZAR AFTER UPDATE ON movimientos_venta > FOR EACH ROW > BEGIN > IF movimientos_venta.INDICADOR_ES =3D1 THEN > UPDATE movimientos_venta SET NEW.CANTIDAD_UNO =3D OLD.CANTIDAD_UNO * -1; > END IF; > > END; > // > > > > > > > > > > > > > > > > 2012/4/25 Max Bube > > > Podes probar con esto > > > > load data infile '/tmp/archivo.txt' into table a (col1, col2, col3, col= 4, > > col5, col6, col7, col8, @var9) set col9 =3D IF(col7=3D42,@var9*-1,@var9= ); > > > > Slds > > > > El 25 de abril de 2012 16:13, Carlos Agust=EDn L=F3pez Avila < > > cagustinla@stripped> escribi=F3: > > > >> El 25/04/2012 10:28 a.m., Oscar Martinez Mejia escribi=F3: > >> > >> Se=F1ores > >>> > >>> Estoy tratando de implementar procedimiento almacenado en MySQL Versi= on > >>> 5.5 > >>> pero no he tenido un resultado satisfactorio, la situacion es la > >>> siguiente > >>> debo cargar una un archivo plano que actualiza una tabla de movimient= os > >>> cada hora, ahora pretendo modificar los valores de una columna de > >>> pendiendo > >>> del valor de otra, es decir si el valor es 42 , multiplique por -1 la > >>> ultima columna , este evento debe ejecutarse cuando se realice una > >>> actualizacion en la tabla > >>> > >>> > >>> Actual > >>> JJ005DV000002 9 6258 20110427 00503 1 42 53 110 > >>> JJ005DV000002 10 6698 20110427 00503 1 42 53 200 > >>> > >>> Deseado > >>> JJ005DV000002 9 6258 20110427 00503 1 42 53 -110 > >>> JJ005DV000002 10 6698 20110427 00503 1 42 53 -200 > >>> > >>> Gracias por su colaboracion > >>> > >>> > >>> > >> > >> haber si te sirve la idea > >> create table tabla_a ( > >> col1 INT, > >> col2 INT > >> ); > >> DELIMITER // > >> create trigger tu_trigger AFTER INSERT ON tu_table FOR EACH ROW > >> BEGIN > >> if NEW.col1>42 > >> set NEW.col2 * -1; > >> END; // > >> DELIMITER ; > >> > >> LOAD DATA LOCAL INFILE 'archivo.txt' INTO TABLE tu_tabla; > >> > >> > >> > >> -- > >> Lista de Correos de MySQL > >> Para el historial de la lista: http://lists.mysql.com/mysql-**es< > http://lists.mysql.com/mysql-es> > >> Para cancelar inscripci=F3n: http://lists.mysql.com/mysql-**es< > http://lists.mysql.com/mysql-es> > >> > >> > > > > > -- > > Oscar Mart=EDnez Mej=EDa > p. 574.2481288 m. 57.3218003050 | e. omartinezmejia@stripped | skype. > oscar.martinez.mejia | twitter. @omartinezmejia > --20cf3079b79836164e04bf3baef5--