Fiz a alteração no código e apareceu a seguinte mensagem de erro:
ERROR: condição de exceção "undefined_columm" é desconhecida CONTEXT: compilação da função PL/pgSQL "cria_instrutor" próximo a linha 41 SQL state: 42704
Por conseguinte, ao incluir João, também não consigo.
Meu código está da seguinte forma:
CREATE OR REPLACE FUNCTION cria_instrutor ()
RETURNS TRIGGER AS $$
DECLARE
media_salarial DECIMAL;
instrutores_recebem_menos INTEGER DEFAULT 0;
total_instrutores INTEGER DEFAULT 0;
salario DECIMAL;
percentual DECIMAL(5,2);
BEGIN
/*NEW nome NEW salario*/
SELECT AVG(instrutor.salario) INTO
media_salarial FROM instrutor
WHERE id <> NEW.id;
IF NEW.salario > media_salarial THEN
INSERT INTO log_instrutores (informacao)
VALUES(NEW.nome ||' recebe acima
da média');
END IF;
FOR salario IN SELECT instrutor.salario
FROM instrutor WHERE id <> NEW.id LOOP
total_instrutores := total_instrutores + 1;
IF NEW.salario > salario THEN
instrutores_recebem_menos :=
instrutores_recebem_menos + 1;
END IF;
END LOOP;
percentual = instrutores_recebem_menos::
DECIMAL/total_instrutores::DECIMAL
* 100;
INSERT INTO log_instrutores(informacao)
VALUES(NEW.nome || ' recebe
mais que '|| percentual || '% da
grade de instrutores');
RETURN NEW;
EXCEPTION
WHEN undefined_columm THEN
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
Agradeço quem puder me ajudar a encontrar o erro e solucionar.