› Fóruns › SQL e PL/SQL › insert , update e delete – 2 tabelas › insert , update e delete – 2 tabelas
Tomando a liberdade de modificar um pouco o código do Leandro, da pra fazer de forma direta, sem utilizar a variável TIPO:
CREATE OR REPLACE TRIGGER TG_AIUD_HW_FUNCIONARIOS AFTER INSERT OR UPDATE OR DELETE ON HW_FUNCIONARIOS FOR EACH ROW
BEGIN
--CASO SEJA INSERT
IF INSERTING THEN
insert into hw_funcionarios_ladob (
fun_id,
ds_telefone,
nr_coletor,
tp_funcionario,
tp_servico,
erro_coletor,
atual_coletor,
ds_email_1,
ds_email_2)
values (
:NEW.fun_id,
:NEW.ds_telefone,
:NEW.nr_coletor,
:NEW.tp_funcionario,
:NEW.tp_servico,
:NEW.erro_coletor,
:NEW.atual_coletor,
:NEW.ds_email_1,
:NEW.ds_email_2);
--CASO ESTEJA ATUALIZANDO
ELSIF UPDATING THEN
update hw_funcionarios_ladob
set ds_telefone = :NEW.ds_telefone,
nr_coletor =:NEW.nr_coletor,
tp_funcionario = :NEW.tp_funcionario,
tp_servico = :NEW.tp_servico,
erro_coletor = :NEW.erro_coletor,
atual_coletor = :NEW.atual_coletor,
ds_email_1 =:NEW.ds_email_1,
ds_email_2 = :NEW.ds_email_2
where fun_id = :old.fun_id;
--CASO ESTEJA REMOVENDO
ELSIF DELETING THEN
delete hw_funcionarios_ladob where fun_id = :OLD.fun_id;
END IF;
END;
/
Dessa forma o banco vai realizar algumas comparações a menos… 🙄