Trigger de atualização PL / SQL Oracle

Eu tenho uma tabela com a seguinte estrutura:

create table treballa (
code varchar2(4), 
 name varchar2(20), 
 director varchar2(4), 
department number, 
salary int,
 primary key (code), 
 foreign key (director) references treballa(code) 
) 

E preciso criar um gatilho que verifique se o número do departamento do trabalhador atualizado, o salário total entre todos os trabalhadores desse departamento não excede 10000, mas não sei como fazê-lo realmente ... por favor me ajude? Muito obrigado.

EDITAR:

CREATE OR REPLACE TRIGGER controlsalaridept BEFORE INSERT OR UPDATE ON TREBALLA
FOR EACH ROW
  DECLARE
    salaritotal INT := 0;
  BEGIN
    IF INSERTING THEN
      SELECT sum(salary) INTO salaritotal FROM TREBALLA WHERE DEPARTMENT LIKE :new.DEPARTAMENT;
      DBMS_OUTPUT.PUT_LINE('Salari Total abans suma:'||salaritotal);
      salaritotal := salaritotal + :new.SALARY;
      DBMS_OUTPUT.PUT_LINE('Salari Total després:'||salaritotal);
      IF salaritotal > 10000 THEN
        raise_application_error(-20025, 'La suma del salari total de cada departament supera els 10000 Euros');
      END IF;
    END IF;
    IF UPDATING THEN
      SELECT sum(salary) INTO salaritotal FROM TREBALLA WHERE DEPARTMENT LIKE :old.DEPARTAMENT;
      DBMS_OUTPUT.PUT_LINE('Salari Total abans suma:'||salaritotal);
      salaritotal := salaritotal - :old.SALARY + :new.SALARY;
      DBMS_OUTPUT.PUT_LINE('Salari Total després:'||salaritotal);
      IF salaritotal > 10000 THEN
        raise_application_error(-20026,'La suma del salari total de cada departament supera els 10000 Euros');
      END IF;
    END IF;
  END;

END EDIT /

ERRO AO ATUALIZAR:

[42000] [4091] ORA-04091: tabela SPECIAL.TREBALLA está em mutação, gatilho / função pode não vê-lo ORA-06512: em "SPECIAL.CONTROLSALARIDEPT", linha 14 ORA-04088: erro durante a execução do gatilho 'SPECIAL.CONTROLSALARIDEPT "

PD: Desculpe, eu sou muito novo no oracle e preciso de ajuda com esse gatilho, não sei se está certo o que estou fazendo .... A primeira parte do gatilho "SE INSERIR" funciona bem, o problema está com a atualização ...

questionAnswers(1)

yourAnswerToTheQuestion