Estou criando um trigger simples que verifica se um nome já está cadastrado na tabela, porém na hora da execução ele não funciona corretamente.
A função é essa:
create or replace function valida_nome() returns trigger as '
declare
nome varchar;
begin
for nome in select instrutores.nome from instrutores where id <> new.id loop
if new.nome = nome then
return null;
end if;
end loop;
end;
' language plpgsql;
create trigger valida_nome before insert on instrutores
for each row execute function valida_nome();
Alguém sabe apontar o que estou fazendo de errado?