Crie e exclua gatilhos no MySQL

Programação de gatilhos em MySQL


Gatilhos ou comumente chamados programando "gatilhos" Eles são um tipo de objeto encontrado em bancos de dados. Quando um determinado evento ou operação é realizado na referida base de dados, nosso gatilho executa automaticamente uma ação para a qual previamente programamos.

O gatilhos eles são ativados automaticamente quando as operações INSERT, DELETE ou UPDATE são realizadas, que são inserir, excluir ou atualizar, respectivamente. Ao executar qualquer uma dessas ações, nossos triggers executam uma instrução ou bloco de instruções para o qual foram previamente programados.

O estrutura de um gatilho no MySQL É o seguinte:

PROLONGAR

 [DEFINER = {usuário | CURRENT_USER}]
Esta parte do código informa ao gerenciador do banco de dados qual usuário tem privilégios para poder chamar nossos gatilhos quando eventos DML vão surgir. O valor padrão é CURRENT_USER.

Para escolher o nome do nosso gatilho, há um critério muito bom a seguir que é: Primeiro coloque o nome da tabela, depois a inicial da operação DML, (I para Inserir, D para Excluir ou U para Atualizar) e depois o inicial a partir do momento da execução (A para depois ou B para antes).

 ANTES | DEPOIS DE
Apenas indica o momento em que nosso gatilho será executado, ou seja, se o gatilho é disparado antes do evento DML (antes) ou depois (depois).
 INSERT | DELETE | ATUALIZAR
Ele nos diz qual será a frase que usaremos para acionar nosso gatilho, Inserir para inserir dados, Excluir para excluí-los ou Atualizar para modificá-los.
 ON nome da mesa
Indica a tabela associada ao nosso gatilho.
 PARA CADA LINHA
Apenas nos informa que a trigger será executada para cada linha de nossa tabela previamente definida no ON.

O declaração final de sql ou o bloco de instruções será a frase ou frases que nosso gatilho executará quando entrar em ação.

Exemplo prático de gatilho


Agora veremos um exemplo prático de como programar um gatilho para vender passagens de ônibus para uma determinada rota enquanto houver lugares livres.
Podemos usar qualquer software que aceite gatilhos e processos armazenados.

Nós criamos um banco de dados:

2º consecutivo nós criamos duas tabelas em nosso banco de dados. Um deles é onde guardaremos os ingressos vendidos e o outro é criado para que possamos saber quantos ingressos estão disponíveis para a viagem em questão.

Aqui está a tabela que conterá as informações sobre a quantidade de ingressos vendidos:

A seguir, criamos a tabela onde salvamos as informações sobre a quantidade de passagens disponíveis para cada viagem específica:

3º agora nós criamos a mesa para armazenar as diferentes viagens:

4º Depois de criar o banco de dados e as tabelas vamos criar a consulta SQL da trigger, mas antes devemos saber quais são as Identificadores NOVOS e ANTIGOS nos gatilhos.

Para que nosso gatilho seja relacionado a uma ou mais colunas específicas da tabela, temos que usar os identificadores mencionados acima, NOVO E ANTIGO.
VELHO: indica o valor antigo da coluna
NOVO: o novo valor que poderia assumir.
Como exemplo: OLD.idtrip ou NEW.idtrip.

Com a Instrução INSERT Só podemos usar o identificador NEW porque com INSERT a função gerada é a de introduzir novos valores na coluna ou colunas.
Se usarmos o Declaração DELETE neste caso devemos usar o identificador OLD porque com DELETE estamos apagando valores que já existiam anteriormente.
Por outro lado, se usarmos o Declaração UPDATE Podemos usar OLD e NEW, pois podemos nos referir a valores antigos ou novos, pois modificaremos os registros que já existiam para outros valores.

Agora que entendemos os identificadores, a instrução sql ficaria assim:

Se executarmos a instrução sql em um programa que a suporta, veremos que de fato o gatilho foi criado.

Para ver como funciona, apresentamos alguns valores lógicos para uma viagem de ônibus, por exemplo:

Aqui, inseri na viagem com o identificador número 1 que há 45 assentos disponíveis.

Depois disso, vendemos um ingresso, por exemplo, o ingresso que corresponde ao assento 14:

Ao fazer esta consulta, se formos ao campo current_availability, veremos que 45 mudou para 44, desde que a trigger 'update_availability' foi ativada.

As vantagens de usar gatilhos é que diferentes casos de uso podem ser programados e que a integridade do banco de dados é mantida, ou seja, nos dá a opção de criar rotinas que executam determinadas ações automaticamente sem a necessidade de fazê-lo manualmente. Seria muito válido para validação de qualquer tipo de informação ou para fazer algum acompanhamento das movimentações da base de dados.

Outro exemplo muito interessante, como acabei de mencionar nas validações, é determinar a maioridade antes de fazer uma frase, por exemplo:

Depois de ver os exemplos de criação de gatilhos, devemos saber como acessar as informações do gatilho. Para isso usaremos as frases:

Para ver os gatilhos em nosso banco de dados:

 MOSTRAR ACIONADORES
Por outro lado, se quisermos ver as informações da trigger que foi criada no momento:
 MOSTRAR CRIAR TRIGGER student_BU_trigger
Por fim, depois de ver como os gatilhos são criados e exibidos, veremos qual é a instrução usada para eliminar um gatilho que temos em nosso banco de dados.
Para fazer isso, só precisamos usar o comando delete típico: derrubar.
 DROP TRIGGER [IF_EXISTS] trigger_name

Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave