Escolar Documentos
Profissional Documentos
Cultura Documentos
Artigo
i ib
https://www.devmedia.com.br/triggers-pl-sql-saiba-quando-e-por-que-usar/30011 d 1/11
15/08/2022 10:54 Triggers PL/SQL: saiba quando e por que usar
Triggers PL/SQL: saiba quando e por que usar
As
triggers são programas armazenados que podem ser executados
automaticamente ou
podem ser disparados quando houver a ocorrência de algum
evento associado a elas.
Elas são, de fato, escritas para serem executadas em
resposta a algum dos
eventos expostos a seguir:
As
triggers podem ser definidas em tabelas, views, schemas ou em alguma base
de
dados com a qual o evento seja associado.
4 [OF col_name]
5 ON table_name
8 WHEN (condition)
9 DECLARE
10 Declaration-statements
11 BEGIN
12 Executable-statements
13 EXCEPTION
14 Exception-handling-statements
15 END;
Onde
temos:
https://www.devmedia.com.br/triggers-pl-sql-saiba-quando-e-por-que-usar/30011 3/11
15/08/2022 10:54 Triggers PL/SQL: saiba quando e por que usar
Vamos
criar um exemplo simples de utilização para melhorar nossas habilidades,
onde o
preço de um produto muda constantemente. Então existe aí a importância
de
manter um histórico dos preços desses produtos.
Então começaremos com a
criação das tabelas de nossa base, conforme a Listagem 2.
2 (produto_id number(5),
3 produto_nome varchar2(50),
4 produto_descricao varchar2(150),
5 produto_preco_unitario number(7,2) );
8 (produto_id number(5),
9 produto_nome varchar2(32),
10 produto_descricao varchar2(150),
11 produto_preco_unitario number(7,2) );
Em
seguida, vamos popular estas tabelas com informações pertinentes, conforme
a Listagem 3.
Listagem 3. Populando as
tabelas
4 '2.50');
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de
7 vitamina C, quantidade minima 12 unidades', '5.00');
9 '4.50');
Aceitar 19
https://www.devmedia.com.br/triggers-pl-sql-saiba-quando-e-por-que-usar/30011 4/11
15/08/2022 10:54 Triggers PL/SQL: saiba quando e por que usar
O
próximo ponto agora é criarmos a nossa trigger, conforme a Listagem 4.
3 ON produtos
5 BEGIN
7 VALUES
8 (:old.produto_id,
9 :old.produto_nome,
10 :old.produto_descricao,
11 :old.produto_preco_unitario);
12 END;
13 /
Agora
que temos nossa tabela criada, populada com alguns registros e também
com a nossa
trigger pronta, vamos então realizar uma atualização em um dos
valores de
produtos que temos, conforme a Listagem
5.
Listagem 5. Atualização de
valores
2 WHERE produto_id = 5;
Como
tivemos esta atualização em um dos itens de produtos na tabela produtos, a
nossa trigger foi disparada fazendo assim a atualização da tabela
‘historico_preco_produto’.
1. [BEFORE]
- Antes da declaração da trigger ser disparada pela primeira vez.
2. [BEFORE]
- Após isso, antes da trigger disparar em nível de linha, uma vez
para cada
linha afetada.
3. [AFTER]
- Então, após a trigger ser disparada em nível de linha para cada
linha
afetada. Estes eventos alternarão entre antes e depois da trigger ser
disparada.
4. [AFTER]
- E por último, depois a declaração da trigger em nível dispara.
Para
facilitar o entendimento destas informações, vamos criar uma nova tabela
chamada ‘produto_mensagem’, onde nós poderemos usá-la para armazenar as
mensagens
quando as triggers forem disparadas.Observe a Listagem 6.
Listagem 6. Tabela
Produto_mensagem
2 (Mensagem varchar2(50),
3 Data_corrente number(32)
4 );
Agora
criaremos as declarações de BEFORE UPDATE para os níveis de declaração
e Utilizamos
de
linha.cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de
privacidade.
Aceitar 19
https://www.devmedia.com.br/triggers-pl-sql-saiba-quando-e-por-que-usar/30011 6/11
15/08/2022 10:54 Triggers PL/SQL: saiba quando e por que usar
A
declaração BEFORE UPDATE, nível de
declaração é uma trigger que irá inserir
um registro na tabela ‘produto_mensagem’
antes da instrução SQL para
atualização ser executada, em nível de declaração. Observe a Listagem
7.
Listagem 7. BEFORE
UPDATE
2 BEFORE
3 UPDATE ON produtos
4 Begin
7 END;
8 /
Agora
a BEFORE UPDATE, nível de linha é
uma trigger que vai inserir um registro
na tabela ‘produto_mensagem’ antes de
cada linha ser atualizada. Observe
a
Listagem 8.
Listagem 8. BEFORE
UPDATE em nível de linha
2 BEFORE
3 UPDATE ON produtos
5 BEGIN
8 END;
9 /
https://www.devmedia.com.br/triggers-pl-sql-saiba-quando-e-por-que-usar/30011 7/11
15/08/2022 10:54 Triggers PL/SQL: saiba quando e por que usar
2 AFTER
3 UPDATE ON produtos
4 BEGIN
7 End;
8 /
2 AFTER
3 insert On produtos
5 BEGIN
8 END;
9 /
Agora
que temos tudo criado, vamos executar uma declaração de atualização na
nossa
tabela de produtos, conforme a Listagem
11.
Algo
importante a se saber também com relação as triggers é que caso estas
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de
tenham
sido definidas de forma idêntica, elas serão executadas sem uma ordem
privacidade.
específica
(podendo ser de forma aleatória).
Aceitar Caso isto seja realmente
19
necessário,
https://www.devmedia.com.br/triggers-pl-sql-saiba-quando-e-por-que-usar/30011 8/11
15/08/2022 10:54 Triggers PL/SQL: saiba quando e por que usar
devemos
ter cuidado com a integridade do banco de dados para que não haja
dependência
com relação à ordem de execução das triggers.
Até a próxima!
de: R$ 658,80
por: 12x
Em caso de dúvidas chame no whatsapp
PLANO PRO
Acesso completo
Projetos reais
Professores online
Exercícios gamificados
Certificado de autoridade
COMECE AGORA
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de
privacidade.
Aceitar 19
https://www.devmedia.com.br/triggers-pl-sql-saiba-quando-e-por-que-usar/30011 9/11
15/08/2022 10:54 Triggers PL/SQL: saiba quando e por que usar
Por
Edson
Em 2014
Receber Newsletter
Tecnologias
Exercicios
Artigos
Quem Somos
Fale conosco
Assine agora
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de
privacidade.
Aceitar 19
https://www.devmedia.com.br/triggers-pl-sql-saiba-quando-e-por-que-usar/30011 10/11
15/08/2022 10:54 Triggers PL/SQL: saiba quando e por que usar
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de
privacidade.
Aceitar 19
https://www.devmedia.com.br/triggers-pl-sql-saiba-quando-e-por-que-usar/30011 11/11