Guevara
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');
Dassayev
Entendi. Mas tem como criar uma função com parametros?
Guevara