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

Actualizar mas de una tabla utilizando triggers

Estas en el tema de Actualizar mas de una tabla utilizando triggers en el foro de Mysql en Foros del Web. Hola, necesito saber si es posible actualizar mas de una tabla en un trigger, tengo un trigger hecho en el cual se actualizan datos de ...
  #1 (permalink)  
Antiguo 25/02/2015, 12:33
 
Fecha de Ingreso: enero-2015
Ubicación: Valparaiso
Mensajes: 88
Antigüedad: 9 años, 3 meses
Puntos: 0
Actualizar mas de una tabla utilizando triggers

Hola, necesito saber si es posible actualizar mas de una tabla en un trigger, tengo un trigger hecho en el cual se actualizan datos de la tabla "saldos" cuando se ingresa un nuevo valor en la tabla"cuenta", ahora necesito que también se actualicen datos en la cuenta "mes" sin ninguna condición del dato de entrada, no he podido dar con información de que si esto se puede hacer o no (google no me ayuda mucho).

El trigger anterior es:
Código MySQL:
Ver original
  1. CREATE TRIGGER `actualizarSaldo` AFTER INSERT ON `cuenta`
  2.      FOR EACH ROW
  3.         IF NEW.fecha <= date_format(curdate(),'%Y%m%d') THEN
  4.             UPDATE saldos,mes SET
  5.                 `saldo_manana_caja`= saldos.saldo_manana_caja + (NEW.ingreso_caja - NEW.egreso_caja),
  6.                 `saldo_manana_bci`= saldos.saldo_manana_bci + (NEW.ingreso_bci - NEW.egreso_bci),
  7.                 `saldo_manana_chi`= saldos.saldo_manana_chi + (NEW.ingreso_chile - NEW.egreso_chile),
  8.                 `saldo_manana_sta1`= saldos.saldo_manana_sta1 + (NEW.ingreso_santa_uno - NEW.egreso_santa_uno),
  9.                 `saldo_manana_sta2`= saldos.saldo_manana_sta2 + (NEW.ingreso_santa_dos - NEW.egreso_santa_dos),
  10.                 `saldo_manana_prove`= saldos.saldo_manana_prove + (NEW.ingreso_prove - NEW.egreso_prove),
  11.                 `saldo_manana_clte`= saldos.saldo_manana_clte + (NEW.ingreso_cliente - NEW.egreso_cliente),
  12.                 `saldo_manana_acre`= saldos.saldo_manana_acre + (NEW.ingreso_acre - NEW.egreso_acre),
  13.                 `saldo_manana_deud`= saldos.saldo_manana_deud + (NEW.ingreso_deud - NEW.egreso_deud),
  14.                 `saldo_manana_edo`= saldos.saldo_manana_edo + (NEW.ingreso_eduardo - NEW.egreso_eduardo),
  15.                 `saldo_manana_edu`= saldos.saldo_manana_edu + (NEW.ingreso_eduar - NEW.egreso_eduar),
  16.                 `caja_bancos`= saldos.saldo_manana_caja + saldos.saldo_manana_bci + saldos.saldo_manana_chi + saldos.saldo_manana_sta1 + saldos.saldo_manana_sta2,
  17.                 `saldo_general`= saldos.caja_bancos + saldos.saldo_manana_acre + saldos.saldo_manana_deud
  18.             WHERE saldos.codigo = NEW.saldos_codigo;

para que las dos tablas sean actualizadas he probado varias formas, esta funciona pero no es lo que necesito ya que el update mes debe ir antes de la condicion
Código MySQL:
Ver original
  1. CREATE TRIGGER `actualizarSaldo` AFTER INSERT ON `cuenta`
  2.      FOR EACH ROW
  3.         IF NEW.fecha <= date_format(curdate(),'%Y%m%d') THEN
  4.             UPDATE saldos,mes SET
  5.                 `saldo_manana_caja`= saldos.saldo_manana_caja + (NEW.ingreso_caja - NEW.egreso_caja),
  6.                 `saldo_manana_bci`= saldos.saldo_manana_bci + (NEW.ingreso_bci - NEW.egreso_bci),
  7.                 `saldo_manana_chi`= saldos.saldo_manana_chi + (NEW.ingreso_chile - NEW.egreso_chile),
  8.                 `saldo_manana_sta1`= saldos.saldo_manana_sta1 + (NEW.ingreso_santa_uno - NEW.egreso_santa_uno),
  9.                 `saldo_manana_sta2`= saldos.saldo_manana_sta2 + (NEW.ingreso_santa_dos - NEW.egreso_santa_dos),
  10.                 `saldo_manana_prove`= saldos.saldo_manana_prove + (NEW.ingreso_prove - NEW.egreso_prove),
  11.                 `saldo_manana_clte`= saldos.saldo_manana_clte + (NEW.ingreso_cliente - NEW.egreso_cliente),
  12.                 `saldo_manana_acre`= saldos.saldo_manana_acre + (NEW.ingreso_acre - NEW.egreso_acre),
  13.                 `saldo_manana_deud`= saldos.saldo_manana_deud + (NEW.ingreso_deud - NEW.egreso_deud),
  14.                 `saldo_manana_edo`= saldos.saldo_manana_edo + (NEW.ingreso_eduardo - NEW.egreso_eduardo),
  15.                 `saldo_manana_edu`= saldos.saldo_manana_edu + (NEW.ingreso_eduar - NEW.egreso_eduar),
  16.                 `caja_bancos`= saldos.saldo_manana_caja + saldos.saldo_manana_bci + saldos.saldo_manana_chi + saldos.saldo_manana_sta1 + saldos.saldo_manana_sta2,
  17.                 `saldo_general`= saldos.caja_bancos + saldos.saldo_manana_acre + saldos.saldo_manana_deud
  18.             WHERE saldos.codigo = NEW.saldos_codigo;
  19.         ELSE
  20.         UPDATE mes SET
  21.                 `ingresos_empresa`= mes.ingresos_empresa + (NEW.ingreso_caja - NEW.egreso_caja)
  22.             WHERE mes.codigo = NEW.mes_codigo;

Etiquetas: fecha, tabla
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 07:58.