Disparadores

2
Disparadores Al momento en que la tabla detalle_trabajo en el campo estado cambie a 1=entrevista o 2=ocupado se ponga automáticamente la fecha del sistema de acuerdo al campo correspondiente f_entrevista y f_contrato, a si como tambien el campo estado en dicha tabla cambie a 2 se modifique el campo estado_lab en la tabla candidatos a 1=contratado y se reste el numero de plazas en el campo plazas en la tabla trabajos. TRIGER: create trigger bolsa_trabajo.cambiarestado BEFORE INSERT on bolsa_trabajo.detalle_trabajo for each row begin call cambiaestado(new.NumC,new.estado); call cambioestado(new.NumT,new.estado); end PROCEDIMIENTO 1: CREATE DEFINER=`root`@`localhost` PROCEDURE `cambiaestado`(em int,nestado int) BEGIN if (nestado=2) THEN update candidatos set estado_lab=1 where NumC=em; END IF; END PROCEDIMIENTO 2: CREATE DEFINER=`root`@`localhost` PROCEDURE `cambioestado`( trab int, nestado int) BEGIN if (nestado=2) THEN UPDATE trabajos set plazas=plazas-1 WHERE NumT=trab; end if;

description

como hacer un disparador

Transcript of Disparadores

Disparadores

Al momento en que la tabla detalle_trabajo en el campo estado cambie a 1=entrevista o 2=ocupado se ponga automticamente la fecha del sistema de acuerdo al campo correspondiente f_entrevista y f_contrato, a si como tambien el campo estado en dicha tabla cambie a 2 se modifique el campo estado_lab en la tabla candidatos a 1=contratado y se reste el numero de plazas en el campo plazas en la tabla trabajos.TRIGER:

create trigger

bolsa_trabajo.cambiarestado

BEFORE

INSERT

on

bolsa_trabajo.detalle_trabajo

for each row begin

call cambiaestado(new.NumC,new.estado);

call cambioestado(new.NumT,new.estado);

end

PROCEDIMIENTO 1:

CREATE DEFINER=`root`@`localhost` PROCEDURE `cambiaestado`(em int,nestado int)

BEGIN

if (nestado=2)

THEN

update candidatos set estado_lab=1 where NumC=em;

END IF;

END

PROCEDIMIENTO 2:

CREATE DEFINER=`root`@`localhost` PROCEDURE `cambioestado`( trab int, nestado int)

BEGIN

if (nestado=2)

THEN

UPDATE trabajos set plazas=plazas-1 WHERE NumT=trab;

end if;

END