1
resposta

[Dúvida] Não entendi o porque da função ter o retorno e parâmetros alterados

Porque a função teve que ter o tipo de retorno modificado para Trigger assim como seus parâmetros removidos? Porque foi necessário modificar a função dessa forma sendo que, no fim, tanto a nova função quanto a antiga funcionam da mesma forma? Isso é necessário apenas por motivos de sintaxe ou tem algo que diferencia uma função normal de uma função que retorna um trigger?

1 resposta

Oi, Pedro! Tudo bem?

Peço desculpas pela demora em te responder.

Triggers são procedimentos que são acionados a partir de um evento específico, como inserção, atualização ou exclusão. Dentro do PostgreSQL, os triggers são sempre associados a uma função, a qual retorna o tipo TRIGGER e não deve conter parâmetro.

Nesse sentido, como o objetivo, ao criar a função cria_instrutor, era alimentar a tabela log_instrutores com os últimos registros inseridos na tabela instrutor, foi necessário trabalhar com um trigger (que reconhece a execução de um INSERT na tabela instrutor e então realiza as atividades informadas na função criainstrutor). Para adaptar a nova função à sintaxe empregada pelo PostgreSQL, tivemos que remover da antiga seus parâmetros e alterar o retorno para TRIGGER.

Ainda que ambas as funções funcionem da mesma forma, a nova tem um diferencial, que é o trigger, o qual possibilita tudo aquilo que conversamos acima.

Dessa forma, não existe um motivo concreto para tais mudanças, apenas o fato de se tratar da sintaxe do PostgreSQL!

Pedro, espero que isso tenha ficado mais claro. Se surgir outra dúvida, estarei aqui para ajudar.

Um grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!