trigger update
boa tarde, gostaria de saber como eu faço um trigger que seja ativado apenas quando realizar o update na coluna cargo
update
before
funcionario(nome,idade,cargo,ano);
gostaria de saber como faço para ativar o trigger apenas quando o update for no campo(Cargo).
desde já muito obrigado
tentei de varias formas porem não sou muito bom em banco de dados.
update
before
funcionario(nome,idade,cargo,ano);
gostaria de saber como faço para ativar o trigger apenas quando o update for no campo(Cargo).
desde já muito obrigado
tentei de varias formas porem não sou muito bom em banco de dados.
Daniel Jesus
Curtidas 0
Respostas
Manoel Junior
31/10/2019
Boa tarde, segue um exemplo que desenvolvi em MySql:
drop database if exists teste; create database teste; use teste; create table TB_FUNC( id_func int primary key auto_increment, nome varchar(250), idade int, cargo varchar(250), ano int ); create table TB_EST( estado varchar(250) ); INSERT INTO TB_EST VALUES(''); DELIMITER $$ CREATE TRIGGER TRG_UPD_FUNC BEFORE UPDATE ON TB_FUNC FOR EACH ROW BEGIN DECLARE TRG_CARGO VARCHAR(250); SELECT cargo INTO TRG_CARGO FROM TB_FUNC WHERE ID_FUNC = NEW.ID_FUNC; IF (TRG_CARGO <> NEW.cargo) then UPDATE TB_EST SET estado = 'Disponível'; ELSE UPDATE TB_EST SET estado = ''; END IF; END $$ DELIMITER ; INSERT INTO TB_FUNC VALUES (NULL,'Manoel Junior',25,'',1997); SELECT * FROM TB_EST; UPDATE TB_FUNC SET cargo = 'SUPPORT ANALYTICS SYSTEM' WHERE id_func = 1; SELECT * FROM TB_EST;
GOSTEI 0
Emerson Nascimento
31/10/2019
Daniel, quando tiver dúvidas, publique o maior número possível de informações pertinentes ao problema.
no teu caso, seria interessante indicar ao menos qual banco de dados está usando e sua versão, assim você receberá ajuda precisa.
no teu caso, seria interessante indicar ao menos qual banco de dados está usando e sua versão, assim você receberá ajuda precisa.
GOSTEI 0