Cita:
Iniciado por andres18281 Cordial Saludo, intento implementar este trigger donde compare si la fecha inicio es menor a la fecha final (en esta db tiene dos campos fechas) entonces inserte la fecha actual (curdate())
en el caso que la fecha final sea mayor que la actual entonces inserte igualmente la actual.
No le veo como mayor dificultad pero al implementar este trigger simplemente no permite
insertar en cualquiera de estos dos casos, por el contrario si no estan dentro de estos casos
si lo hace. Quien me podria dar una mano en esto ?
Código MySQL:
Ver originalDELIMITER //
INSERT INTO cargoxempleado
VALUES(NEW.codEmpleado
,NEW.codCargo
,NEW.codDepartamento
,NEW.salario
,NEW.fecha_inicio
,CURDATE()); ELSEIF NEW.fecha_final
< NEW.fecha_inicio
THEN INSERT INTO cargoxempleado
VALUES(NEW.codEmpleado
,NEW.codCargo
,NEW.codDepartamento
,NEW.salario
,NEW.fecha_inicio
,CURDATE()); //
No puedes realizar operaciones DML sobre la misma tabla que dispara el trigger.
Si lo piensas, estás intentando hacer un INSERT en un TRIGGER sobre una tabla en la cual se está ejecutando ese mismo TRIGGER, y para el mismo evento, lo que dispararía otra vez el TRIGGER...
Si pudiese ejecutarse se produciría un loop infinito.
Lo que tienes que hacer es modificar el dato del campo correspondiente en el NEW, en base a la condición.