Gatilhos Em Banco De Dados
Pesquisas Acadêmicas: Gatilhos Em Banco De Dados. Pesquise 861.000+ trabalhos acadêmicosPor: cabeto07 • 13/3/2015 • 373 Palavras (2 Páginas) • 426 Visualizações
GABARITO TRABALHO
1) Crie um gatilho que inclua um registro na tabela comissao para cada venda realizada por um vendedor. Lembrando que a comissão é calculada baseado em 1% do atributo Venda.Valor (nome do gatilho: gatilho1)
CREATE TRIGGER gatilho1
AFTER UPDATE
ON comissao
FOR EACH ROW
EXECUTE PROCEDURE venda_realizada();
CREATE OR REPLACE FUNCTION venda_realizada()
RETURNS "trigger" AS
$BODY$
BEGIN
IF venda.idVenda = new. Venda_idVenda THEN
UPDATE COMISSAO a SET a.VALORCOMISSAO = (select b.valor*0,01 from venda b
Where b. idvenda = new.venda_idvenda )
WHERE a.venda_idvenda in (select idvenda from venda where idvenda = new.venda_idvenda);
END IF;
RETURN NEW;
END;
$BODY$
LANGUAGE 'plpgsql';
2) Crie um gatilho que inclua um registro na tabela autorização após a inclusão de um
reparo. (nome do gatilho: gatilho2)
CREATE TRIGGER gatilho2
AFTER INSERT
ON reparo
FOR EACH ROW
EXECUTE PROCEDURE reparo_autorizacao();
CREATE OR REPLACE FUNCTION reparo ()
RETURNS "trigger" AS
$BODY$
BEGIN
IF NOT EXISTS (SELECT 1 FROM autorizacao
WHERE idautorizacao = new.idautorizacao) THEN
Insert into autorizacao
(idautorizacao, autorizado, motivo, dataautorizacao, idempregado_autoriza, idempregado_solicitante, idoperacao, operacao, descoperacao)
Values
(new.idautorizacao, new.autorizado,new. motivo, new.dataautorizacao,new. idempregado_autoriza, new.idempregado_solicitante,new. idoperacao, new.operacao, new.descoperacao);
END IF;
RETURN NEW;
END;
$BODY$
LANGUAGE 'plpgsql';
3) Crie um gatilho que inclua um registro na tabela autorização após a inclusão de uma reserva de peça na tabela estoque.
CREATE TRIGGER gatilho3
AFTER INSERT
ON Estoque
FOR EACH ROW
EXECUTE PROCEDURE reparo_estoque();
CREATE OR REPLACE FUNCTION reparo_estoque()
RETURNS "trigger" AS
$BODY$
...