trigger update

SQL

Banco de Dados

31/10/2019

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.
Daniel Jesus

Daniel Jesus

Curtidas 0

Respostas

Manoel Junior

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

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.
GOSTEI 0
POSTAR