Portanto, um comentário desta pergunta menciona que há uma pequena diferença em "Procedimentos armazenados" e "Funções armazenadas" no PostgreSQL.
O comentário tem links para um artigo da wikipedia, mas alguns deles não parecem se aplicar (por exemplo, que podem ser usados em uma SELECT
declaração).
A sintaxe em si parece ser um pouco confusa:
CREATE FUNCTION emp_stamp() RETURNS trigger AS $emp_stamp$
BEGIN
[...]
END;
$emp_stamp$ LANGUAGE plpgsql;
CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp
FOR EACH ROW EXECUTE PROCEDURE emp_stamp();
Você cria um FUNCTION
mas se refere a ele como um PROCEDURE
.
Então, qual é a diferença entre esses dois?