Considere que, em um departamento, todos os funcionários rec...
Considere as tabelas e as TRIGGERS escritas na notação do Oracle a seguir e responda às questões de 24 a 27.
R1:
CREATE TRIGGER Sal_total1
AFTER INSERT ON FUNCIONARIO
FOR EACH ROW
WHEN (NEW.Dnr IS NOT NULL)
UPDATE DEPARTAMENTO
SET Sal_total = Sal_total + NEW.Salario
WHERE Dnr = NEW.Dnr;
R2:
CREATE TRIGGER Sal_total2
AFTER UPDATE OF Salario ON FUNCIONARIO
FOR EACH ROW
WHEN (NEW.Dnr IS NOT NULL)
UPDATE DEPARTAMENTO
SET Sal_total = Sal_total + NEW.Salario - OLD.Salario
WHERE Dnr = NEW.Dnr;
R3:
CREATE TRIGGER Sal_total3
AFTER UPDATE OF Dnr ON FUNCIONARIO
FOR EACH ROW
BEGIN
UPDATE DEPARTAMENTO
SET Sal_total = Sal_total + NEW.Salario
WHERE Dnr = New.Dnr;
UPDATE DEPARTAMENTO
SET Sal_total = Sal_total - OLD.Salario
WHERE Dnr = OLD.Dnr;
END;
R4:
CREATE TRIGGER Sal_total4
AFTER DELETE ON FUNCIONARIO
FOR EACH ROW
WHEN (OLD.Dnr IS NOT NULL)
UPDATE DEPARTAMENTO
SET Sal_total = Sal_total - OLD.Salario
WHERE Dnr = OLD.Dnr;
R5:
CREATE TRIGGER Informar_supervisor1
BEFORE INSERT OR UPDATE OF Salario,Cpf_supervisor
ON FUNCIONARIO
FOR EACH ROW
WHEN (NEW.Salario> (SELECT Salario FROM FUNCIONARIO)
WHERE Cpf = NEW.Cpf_supervisor))
informar_supervisor(NEW.Cpf_supervisor,NEW.Cpf);
Considere que, em um departamento, todos os funcionários receberam 10% de aumento.
Assinale a alternativa que apresenta, corretamente, a regra que será ativada e quantas vezes ela será ativada.