Sou novo com o postgres e quero fazer uma função bem simples, na qual tenho uma tabela com campos qtd (quantidade fisica), qtd_reservada e qtd_livre, e desejo que de acordo com insert ou alteração no campo no quantidade reservada seja feito um update no campo qtd_livre com a diferença entre qtd - qtd_reservada, porem não ta funcionando, essa tabela ta num esquema chamado master.
Segue em anexo minha função e a trigger
CREATE OR REPLACE FUNCTION fnc_calc_estoque_livre ()
RETURNS TRIGGER AS
$BODY$
BEGIN
UPDATE master.alm_estoque SET qtd_livre = (qtd - qtd_reservada);
RETURN NEW;
END
$BODY$
LANGUAGE plpgsql VOLATILE;
ALTER FUNCTION fnc_calc_estoque_livre(integer) OWNER TO postgres;
-------------------------------------------------------------------------------------------------------
CREATE TRIGGER trigger_calc_estoque AFTER INSERT OR DELETE
ON master.alm_estoque FOR EACH ROW
Pergunta
Marcio Albino
Sou novo com o postgres e quero fazer uma função bem simples, na qual tenho uma tabela com campos qtd (quantidade fisica), qtd_reservada e qtd_livre, e desejo que de acordo com insert ou alteração no campo no quantidade reservada seja feito um update no campo qtd_livre com a diferença entre qtd - qtd_reservada, porem não ta funcionando, essa tabela ta num esquema chamado master.
Segue em anexo minha função e a trigger
CREATE OR REPLACE FUNCTION fnc_calc_estoque_livre ()
RETURNS TRIGGER AS
$BODY$
BEGIN
UPDATE master.alm_estoque SET qtd_livre = (qtd - qtd_reservada);
RETURN NEW;
END
$BODY$
LANGUAGE plpgsql VOLATILE;
ALTER FUNCTION fnc_calc_estoque_livre(integer) OWNER TO postgres;
-------------------------------------------------------------------------------------------------------
CREATE TRIGGER trigger_calc_estoque AFTER INSERT OR DELETE
ON master.alm_estoque FOR EACH ROW
EXECUTE PROCEDURE fnc_calc_estoque_livre();
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.