Olá Lucas, é exatamente isso. Vc cria um function que retorna um tipo Trigger.
Abaixo um exemplo que tenho. O exemplo faz o seguinte:
Se incluir um documento a pagar que o tipo de vencimento seja "A VISTA" ele já
liquida o documento, inserindo um registro
na tabela liquidacoes_contas_pagar. Tem um cursor pra pegar uns parâmetros e um
teste antes. mas é mais ou menos o que vc quer.
CREATE OR REPLACE FUNCTION TG_AI_CPA () RETURNS trigger AS
$body$
DECLARE
C1 CURSOR IS
SELECT FC_PARAMETRO(11, 'MCP_MOVIMENTO_AVISTA') AS MCP_MOVIMENTO,
FC_USUARIO() AS USR_USUARIO;
V1 RECORD;
begin
OPEN C1;
FETCH C1 INTO V1;
CLOSE C1;
IF (NEW.TPV_TIPO = 2) AND (V1.MCP_MOVIMENTO IS NOT NULL) THEN
INSERT INTO LIQUIDACOES_CONTAS_PAGAR
(LCP_SEQUENCIA, CPA_SEQUENCIA, MCP_MOVIMENTO,
LCP_DATA_OCORRENCIA, LCP_DATA_CONTABIL, LCP_VALOR,
LCP_LANCAMENTO_MANUAL, USR_USUARIO, LCP_RETROATIVO)
VALUES (NEXTVAL('SQ_LIQUIDACOES_CONTAS_PAGAR'), NEW.CPA_SEQUENCIA,
CAST(V1.MCP_MOVIMENTO AS NUMERIC),
NEW.CPA_VENCIMENTO, NEW.CPA_VENCIMENTO, NEW.CPA_VALOR,
'S', V1.USR_USUARIO, 'S');
END IF;
RETURN NEW;
end;
$body$
LANGUAGE 'plpgsql';
CREATE TRIGGER TG_AI_CPA AFTER INSERT
ON contas_pagar FOR EACH ROW
EXECUTE PROCEDURE TG_AI_CPA();
----- Original Message -----
From: Lucas Paz
To: [email protected]
Sent: Tuesday, December 09, 2008 10:52 AM
Subject: [pgbr-geral] Trigger Postgresql vs Firebird
Pessoal, estamos migrando para o Postgresql e estou com duvida de como fazer
algumas trigger's visto que a estrutura do firebird é completamente diferente
do Postgresql. No Firebird tenho isso por exemplo...
CREATE TRIGGER ADD_HISTORICO_AI FOR LANCAMENTOS ACTIVEAFTER INSERT POSITION 0
AS
BEGIN
INSERT INTO HISTORICO_LANCAMENTO (ID_BANCO, ID_LANCAMENTO, ID_ESTADO, DATA)
VALUES (new.ID_BANCO, new.ID_LANCAMENTO, new.ID_ESTADO, new.DATA_ENTRADA);
END;
Essa trigger faz o seguinte, quando insiro uma linha na tabela lancamentos,
ela automaticamente insere uma linha na tabela historico_lancamentos... i
pelo que vi tenho que criar uma function e um tigger que dispara a
function... se alguem puder me ajudar a fazer essa trigger no firebird pra eu
entender como funciona eu agradeço, as outras são bem parecidas entendendo essa
já fica certo.
Obrigado pela atenção...
--
Lucas Paz
------------------------------------------------------------------------------
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral