Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/02/2015, 12:33
Begotten
 
Fecha de Ingreso: enero-2015
Ubicación: Valparaiso
Mensajes: 88
Antigüedad: 9 años, 4 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;