Aula 10 SQL Triggers
QUERY LANGUAGE)
Gatilhos
Prof. Cleber Rubert
Banco de Dados
Triggers
• O termo trigger (gatilho em inglês) define uma estrutura
do banco de dados que funciona como uma função que é disparada mediante alguma ação.
• Geralmente essas ações que disparam os triggers são alterações nas tabelas por meio de operações de inserção, exclusão e atualização de dados (insert, delete e update).
• Um gatilho está intimamente relacionado a uma tabela, sempre que uma dessas ações é efetuada sobre essa tabela, é possível dispará-lo para executar alguma tarefa.
Sintaxe de criação de trigger
CREATE TRIGGER nome-do-gatilho momento-daexecução evento-disparador
ON nome-da-tabela
FOR EACH ROW comandos válidos no SQL OU BEGIN corpo do gatilho: comandos válido no SQL
Sintaxe de criação de trigger
CREATE TRIGGER nome-do-gatilho momento-daexecução evento-disparador ON nome-da-tabela
• nome-do-gatilho representa o nome do gatilho (trigger)
que será criado;
• momento-da-execução diz em que tempo a ação ocorrerá, antes (BEFORE) ou depois (AFTER) do evento;
• evento-disparador representa o evento que dispara o gatilho (trigger), são os comandos INSERT, UPDATE e
DELETE do SQL;
• nome-da-tabela diz o nome da tabela que será utilizado pelo gatilho (trigger);
Tipo de Gatilhos
Exemplo 01
Para cada carro inserido com ano inferior a 1990 diminuir o valor inserido em 20%. create trigger anocarro before insert on carro for each row if (new.ano<1990) then set New.valor = new.valor * 0.8; end if;
Exemplo 02
• Criar uma trigger que calcula a media final do aluno a
partir de duas notas armazenadas na tabela Media.
create trigger Mediafinal before insert on Notas for each row set New.MediaFinal = (new.nota1+new.nota2)/2;
Exemplo 03 (cont...)
• Para exemplificar e tornar mais clara a utilização de gatilhos, simularemos a
seguinte situação: um mercado que, ao realizar vendas, precisa que o estoque dos produtos seja automaticamente reduzido. A devolução do estoque deve também