Pular para o conteúdo

Fóruns SQL e PL/SQL insert , update e delete – 2 tabelas insert , update e delete – 2 tabelas

#97837
burga
Participante

    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… 🙄