Você está na página 1de 19

Plano de aula

Banco de Dados : Triggers Triggers


Variávies
Prof. Ovídio Francisco Estruturas de decisão
Exercícios
Introdução
O contexto

Uma Trigger é um procedimento associado a uma tabela no


banco de dados. Elas são utilizadas para automatizar chamadas
a rotinas.

O código é executado quando ocorre certa ação no banco de


dados.

Triggers podem ser executadas quando uma das seguintes


ações ocorre:

● Inserção
● Atualização
● Deleção

Podem ser disparadas antes ou depois da ação.

Triggers Prof. Ovídio Francisco


O contexto

Exemplo:
Considere a seguinte tabela que armazena dados de filmes

Triggers Prof. Ovídio Francisco


O contexto

Como se sabe, um filme não pode ter a quantidade de


minutos com valor negativo.

Desejamos então que nossa tabela não registre valores


menores do que zero para minutos.

Para isso, sempre que um INSERT for executado


verificamos o valor informado para minutos, caso seja
negativo, alteramos esse valor para null.

Triggers Prof. Ovídio Francisco


Triggers
Triggers

Veja o código que cria uma trigger associada a tabela


Filmes:

Triggers Prof. Ovídio Francisco


Triggers - Dissecando o código

CREATE TRIGGER Indica que estamos criando uma trigger;

chk_minutos É o nome da trigger criada;

BEFORE Será executada antes da ação. Outro valorpossı́vel é AFTER;

Será executada quando o comando insert for executado.


INSERT
Outros valores possı́veis são: UPDATE e DELETE;

ON Filmes Determina que a trigger é associada à tabela Filmes;

Define o início do corpo da trigger. Significa que os comandos


FOR EACH ROW
a seguir serão executados para todas as linhas afetadas;

Referência à tupla a ser criada pelo comando INSERT. Outro


NEW
valorpossı́vel seria OLD para DELETE ou UPDATE;

NEW.minutos Referência ao campo minutos da nova tupla;

IF...THEM instrução condicional;

SET NEW.minutos=null seta o campo minutos da nova linha com null;

END IF fim da instrução condicional;

Triggers Prof. Ovídio Francisco


Triggers

Uma vez definidas a tabela e a trigger, podemos inserir


dados, como os seguintes:

Qual será o resultado para cada INSERT?

Triggers Prof. Ovídio Francisco


Exceções
Exceções

“É um evento que ocorre durante a execução do


programa que rompe o fluxo normal das instruções.”

Uma exceção reporta uma situação adversa onde a


classe não é capaz de funcionar.

https://rollbar.com/blog/java-exceptions-hierarchy-explained
Encapsulamento Prof. Ovídio Francisco
Exceções

Sempre que algo inadequado for detectado,


podemos criar uma exception e a lançamos como o
comando signal.

Triggers Prof. Ovídio Francisco


Triggers

Veja o código que cria uma trigger associada a tabela Filmes:

Triggers Prof. Ovídio Francisco


Triggers

Triggers Prof. Ovídio Francisco


Triggers
Veja o código que cria uma trigger associada a tabela Filmes:

Triggers Prof. Ovídio Francisco


Triggers

Triggers Prof. Ovídio Francisco


Para saber mais...

https://www.mysqltutorial.org/create-the-first-trigger-in-mysql.aspx/

https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html

https://dev.mysql.com/doc/refman/8.0/en/triggers.html

https://www.mysqltutorial.org/mysql-triggers.aspx/

Triggers Prof. Ovídio Francisco


Exercícios
Exercícios

1. Implemente você mesmo o exemplo mostrado e veja os resultados;

2. Crie uma tabela para armazenar dados de pessoas. Como restrição, ninguém pode ter
idade negativa, nem idade maior que 200 anos. Gere mensagens de erro adequadas
para cada situação.

3. Crie um campo ultima_atualizacao que armazena a data e hora da última


alteração de cada registro.

4. Crie uma tabela para log do banco de dados. Nessa tabela devem ser registrados
metadados referentes a atividades no banco de dados como inserções, atualizações e
deleções. Cada registro desta tabela deve conter o nome da tabela alterada, o nome
do usuário logado, data e hora da atividade.

5. Crie uma tabela para armazenar dados de funcionários. Como restrição, ninguém pode
ter salário inferior a R$ 12.000,00 e a jornada semanal deve estar entre 20 e 40 horas.
Gere mensagens de erro adequadas para cada situação.

Triggers Prof. Ovídio Francisco

Você também pode gostar