
Trigger Mysql Actualiza campos en un insert
Publicado por John (2 intervenciones) el 02/10/2015 19:29:33
Hola a todos!
Tengo una tabla detalle de factura con la siguiente estructura:
det_factura
fackey varchar(13) <--- num de comprobante (la estructura es 77-888-999999 donde 77 identifica el tipo de doc)
artcod varchar(6) <--- código de articulo
artnom varchar(50) <--- nombre del articulo
necesito generar un trigger que me permita actualizar el nombre del articulo concatenando el código del articulo el cual ya lo tengo generado:
CREATE DEFINER=`root`@`localhost` TRIGGER `mybd`.`tr_upd_nomart` BEFORE INSERT ON `mydb`.`det_factura`
FOR EACH ROW SET NEW.artnom = concat(right(NEW.artcod,5), left(NEW.artnom,45));
Con este trigger puedo actualizar el nombre del articulo concatenando el codigo + nombre, todo ok, el problema es que necesito meterle una condición, que solo actualice en las boletas mas no en las facturas, para ello la condición seria:
left(NEW.fackey,2)='03'
he tratado de hacerlo utilizando IF pero no puedo armar la estructura, alguien por ahí que me pueda apoyar con el caso.
Esto lo hago porque no se puede modificar el aplicativo ya que no contamos con las fuentes.
De antemano muchas gracias por su atención y tiempo!
JohnQZ.
Tengo una tabla detalle de factura con la siguiente estructura:
det_factura
fackey varchar(13) <--- num de comprobante (la estructura es 77-888-999999 donde 77 identifica el tipo de doc)
artcod varchar(6) <--- código de articulo
artnom varchar(50) <--- nombre del articulo
necesito generar un trigger que me permita actualizar el nombre del articulo concatenando el código del articulo el cual ya lo tengo generado:
CREATE DEFINER=`root`@`localhost` TRIGGER `mybd`.`tr_upd_nomart` BEFORE INSERT ON `mydb`.`det_factura`
FOR EACH ROW SET NEW.artnom = concat(right(NEW.artcod,5), left(NEW.artnom,45));
Con este trigger puedo actualizar el nombre del articulo concatenando el codigo + nombre, todo ok, el problema es que necesito meterle una condición, que solo actualice en las boletas mas no en las facturas, para ello la condición seria:
left(NEW.fackey,2)='03'
he tratado de hacerlo utilizando IF pero no puedo armar la estructura, alguien por ahí que me pueda apoyar con el caso.
Esto lo hago porque no se puede modificar el aplicativo ya que no contamos con las fuentes.
De antemano muchas gracias por su atención y tiempo!
JohnQZ.
Valora esta pregunta


0