[firebase-br] Trigger para Valor Negativo
Ricardo Ferreira Sobrinho
ricardoif em gmail.com
Seg Jan 28 16:02:33 -03 2008
Saudçõess a todos!
Sou novato e durante os meus estudos encontrei o seguinte problema:
Em um TRIGGER que a cada INSERÇÃO/EXCLUSÃO da venda na tabela PEDIDOS,
atualiza o valor Total vendido por um vendedor. É preciso levantar uma
EXCEÇÃO quando esse valor for negativo.
Diante do problema, encontrei a solução abaixo:
------------------------------------------------
SET SQL DIALECT 3;
SET NAMES ISO8859_1;
SET TERM ^ ;
CREATE OR ALTER TRIGGER UPD_VENDA FOR PEDIDO
ACTIVE AFTER INSERT OR DELETE POSITION 0
AS
DECLARE VARIABLE totalvenda NUMERIC(10,2) = 0;
BEGIN
IF (INSERTING) THEN
UPDATE vendedor
SET total_venda = total_venda + NEW.valor_pedido
WHERE id_vendedor = NEW.id_vendedor;
IF (DELETING) THEN
BEGIN
UPDATE vendedor
SET total_venda = total_venda - OLD.valor_pedido
WHERE id_vendedor = OLD.id_vendedor;
SELECT total_venda
FROM vendedor
WHERE id_vendedor = OLD.id_vendedor
INTO totalvenda;
IF (totalvenda < 0) THEN
EXCEPTION valor_negativo;
END
END
^
SET TERM ; ^
------------------------------------------------
1. declaro a variavel totalVenda
2. no Deleting, incluo dentro do BEGIN END o SELECT e a condicao IF THEN
Gostaria de saber a opnião de vocês à respeito.
--
Cordialmente,
Ricardo Ferreira Sobrinho
Mais detalhes sobre a lista de discussão lista