Blog

Postado em em 30 de agosto de 2022

Trigger no SQL – Para que Server e Como Funciona?

Você sabe o que é um trigger no SQL ou como ele funciona? Hoje eu vou te mostrar como ele pode te ajudar no seu trabalho!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Criação de Trigger no SQL

Você sabe o que é um trigger? Sabe como criar um trigger no SQL? Hoje eu vou te ensinar o que é esse tal de trigger e como você pode criar um no SQL.

Você provavelmente já ouviu esse termo em outros lugares, mas hoje vamos aplicá-lo dentro do SQL para auxiliar em algumas atividades!

Como Criar Trigger no SQL

O trigger nada mais é do que um gatilho, ou seja, é algo que vai desencadear uma ação. Você pode pensar que o trigger é o fiscal do SQL.

Então sempre que ele ver alguma coisa que o ativa ele vai responder com uma ação. Vou te mostrar um exemplo para melhorar o entendimento, mas você pode pensar como uma função SE.

Se uma ação x acontecer nós vamos executar uma ação y em resposta a primeira ação!

O nosso exemplo vai ser a criação de um trigger no Oracle Database (Oracle SQL Developer) onde ele vai ser disparado sempre antes que um comando INSERT for feito na tabela EMPLOYEES.

Caso o dia em que o INSERT/UPDATE/DELETE seja feito em uma SEGUNDA-FEIRA, SÁBADO ou DOMINGO então esses comandos serão abortados.

Então o nosso exemplo é simples, sempre que utilizar um desses comandos nosso gatilho será acionado, mas caso esses comandos sejam utilizados em uma segunda, sábado ou domingo eles serão abortados.

Então o nosso gatilho vai funcionar sempre que um comando desse for utilizado, mas ele só vai ter uma ação nesses 3 dias específicos.

Criando o trigger no SQL com as condições
Criando o trigger no SQL com as condições

Aqui nós temos a estrutura do nosso código. Esse código inicia TRIM(TO_CHAR(sysdate, ‘DAY’)) é para obter o dia atual.

Dessa forma nós vamos conseguir utilizar esse dia também dentro da nossa função IF (função SE) para verificar se o dia é segunda, sábado ou domingo.

Dessa forma vamos conseguir retornar um erro, onde esse número -20001 é a própria Oracle que fornece, então você pode buscar esses erros para saber mais sobre eles.

Além disso podemos inserir uma mensagem que vai aparecer ao usuário quando ele tentar utilizar um desses comandos nesses dias.

Caso o usuário utilize esses comandos em outros dias da semana o trigger vai ser ativado da mesma maneira, mas não terá nenhuma ação, pois o nosso IF só funciona se o dia for segunda, sábado ou domingo.

Para criar a trigger nós vamos utilizar o comando CREATE OR REPLACE TRIGGER + o nome que você quiser dar para o seu gatilho.

Em seguida temos a ação que o trigger vai fazer se é antes (BEFORE) ou depois (AFTER) um comando.

Agora podemos aplicar um comando DELETE por exemplo para verificar o funcionamento do nosso trigger. Lembrando que esse teste está sendo feito em uma segunda-feira.

Testando o comando DELETE para verificar o funcionamento do gatilho
Testando o comando DELETE para verificar o funcionamento do gatilho

Aqui você nota que temos um erro do nosso trigger, ou seja, ele mostrou a nossa mensagem de erro e falou que ela vem do trigger que criamos.

Para verificar se de fato o gatilho funcionou podemos visualizar os dados do nosso banco e verificar se o funcionário 190 ainda está lá!

Confirmando que o funcionário não foi excluído
Confirmando que o funcionário não foi excluído

Aqui podemos concluir que o nosso trigger funcionou, pois estamos executando uma ação em uma segunda feira.

Agora se você quiser testar se realmente funciona pode testar em outro dia, ou pode simplesmente tirar a segunda-feira das condições iniciais.

Então quando for utilizar o comando DELETE vai ver que o funcionário será excluído da base de dados!

Conclusão – Trigger no SQL

Nessa aula eu te mostrei como criar um trigger no SQL para que você possa executar ações quando algum comando for executado.

Isso é muito importante até para impedir que erros aconteçam ou que pessoas executem atividades que não deveriam.

Hashtag Treinamentos

Para acessar outras publicações de SQL, clique aqui!


Quer aprender mais sobre SQL com um minicurso básico gratuito?

Quer receber um minicurso 100% gratuito de Excel? Preencha seu e-mail abaixo!