Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/01/2005, 13:50
jaic69
 
Fecha de Ingreso: octubre-2004
Mensajes: 7
Antigüedad: 19 años, 6 meses
Puntos: 0
Importante: Trigger en Mysql

Hola como ya deben saber la nueva version del Mysql ya soporta triggers, ahora necesito su ayuda porq no puedo pasar el trigger q tengo en Oracle a la sintaxis q ocupa el Mysql porfavor ayudenmeeee.
El trigger en Oracle es el siguiente :

create or replace trigger TRG_CFE_AVANCES
AFTER INSERT OR UPDATE OR DELETE
ON mysql.CFE_AVANCES
FOR EACH ROW
when (NEW.PORC_AVANCE <> OLD.PORC_AVANCE OR NEW.CANT_AVANCE <> OLD.CANT_AVANCE
OR NEW.FECHA_INICIO <> OLD.FECHA_INICIO OR NEW.FECHA_FIN <> OLD.FECHA_FIN
OR NEW.DESC_AVANCE <> OLD.DESC_AVANCE OR NEW.FACTOR <> OLD.FACTOR)
DECLARE
IS_INSERT BOOLEAN := FALSE;
IS_DELETE BOOLEAN := FALSE;
SWITCH1 number(4);
SWITCH2 number(4);
BEGIN
SWITCH1 := NVL(:NEW.AVANCE_ID,0);
SWITCH2 := NVL(:OLD.AVANCE_ID,0);

IS_INSERT := SWITCH1 !=0;
IS_DELETE := SWITCH2 !=0;

IF IS_INSERT AND NOT IS_DELETE THEN
BEGIN
--local
INSERT INTO mysql.A_CFE_AVANCES
VALUES(:NEW.SEC_ID,
:NEW.AVANCE_ID,
:NEW.PROY_RRHH_ID,
:NEW.INDICADOR_ID,
:NEW.FECHA_INICIO,
:NEW.FECHA_FIN,
:NEW.PORC_AVANCE,
:NEW.CANT_AVANCE,
:NEW.DESC_AVANCE,
:NEW.FACTOR,
:NEW.TARJ_NUMER,
USER,
'I',
SYSDATE);
END;
ELSE
IF IS_DELETE AND NOT IS_INSERT THEN
BEGIN
INSERT mysql.INTO A_CFE_AVANCES
VALUES(:NEW.SEC_ID,
:NEW.AVANCE_ID,
:NEW.PROY_RRHH_ID,
:NEW.INDICADOR_ID,
:NEW.FECHA_INICIO,
:NEW.FECHA_FIN,
:NEW.PORC_AVANCE,
:NEW.CANT_AVANCE,
:NEW.DESC_AVANCE,
:NEW.FACTOR,
:NEW.TARJ_NUMER,
USER,
'D',
SYSDATE);
END;
ELSE
BEGIN
-- local
INSERT mysql.INTO A_CFE_AVANCES
VALUES(:NEW.SEC_ID,
:OLD.AVANCE_ID,
:OLD.PROY_RRHH_ID,
:OLD.INDICADOR_ID,
:OLD.FECHA_INICIO,
:OLD.FECHA_FIN,
:OLD.PORC_AVANCE,
:OLD.CANT_AVANCE,
:OLD.DESC_AVANCE,
:OLD.FACTOR,
:OLD.TARJ_NUMER,
USER,
'U',
SYSDATE);
END;
END IF;
END IF;
END;

Gracias espero su respuesta lo mas rapido posible.
Necesito ese trigger en sintaxis de Mysql no lo logro sacar pofavor ayudenme gracias.

Última edición por jaic69; 25/01/2005 a las 13:55