Triggers no Postgres

Boa noite pessoal,

Estou precisando criar uma trigger no postgres que chame uma função de insert. Por exemplo: quando um registro é inserido, atualizado ou deletado em uma tabela é disparada uma trigger que chama uma função (inseri_auditoria(parametro1, parametro2, parametro3)).

Alguém poderia me ajudar com isso?

Eu tenho o livro PostgreSQL Guia do Programador, é bem legal, têm vários exemplos, veja:

Exemplo para incrementar a tabela TOTAL_CONTAS de acordo com o tipo da conta do cliente (F = Física, J= Jurídica):

CREATE FUNCTION incrementaContas() RETURNS TRIGGER AS $$
BEGIN
// a variável NEW representa no PostgreSQL os valores do registro que estará sendo manipulado.

IF NEW.tipo = 'F' THEN
// se o tipo for 'F' , indica que a conta é de pessoa física

UPDATE TOTAL_CONTAS SET QUANTIDADE = QUANTIDADE + 1 WHERE TIPO = 'FISICA';
ELSE
// caso contrário, a conta será considerada do tipo pessoa jurídica

UPDATE TOTAL_CONTAS SET QUANTIDADE = QUANTIDADE + 1 WHERE TIPO = 'JURIDICA';
END IF;
RETURN NULL;
END;
$$ LANGUAGE plpgsql;

// Criação do trigger para que a função acima "incrementaContas" seja invocada a cada novo registro inserido na tabela CONTAS

CREATE TRIGGER triggerIncrementaContas AFTER INSERT ON CONTAS FOR EACH ROW EXECUTE PROCEDURE incrementaContas();

// Testando o seu trigger

INSERT INTO CONTAS (numero, saldo, tipo) VALUES (1, 0, 'F');

Entendi. Mas tem como criar uma função com parametros?

Fonte: http://imasters.com.br/artigo/10644/postgresql/triggers_no_postgresql/