0% acharam este documento útil (0 voto)
67 visualizações3 páginas

Triggers em MySQL

O documento explica o que são triggers no MySQL, como são diferentes de procedimentos armazenados e apresenta exemplos de código SQL para criar um trigger que aplica desconto automático nos preços de produtos ao inserir novos registros.

Enviado por

rodrigo95silva
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
67 visualizações3 páginas

Triggers em MySQL

O documento explica o que são triggers no MySQL, como são diferentes de procedimentos armazenados e apresenta exemplos de código SQL para criar um trigger que aplica desconto automático nos preços de produtos ao inserir novos registros.

Enviado por

rodrigo95silva
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd

Triggers em MySQL – Definição, Sintaxe e Criação – 44

Triggers em MySQL

Neste artigo vamos introduzir o conceito de triggers em MySQL, com exemplos de


código e aplicações.

O que é um Trigger SQL?

Um trigger (“gatilho”) é um objeto programável do banco de dados associado a uma


tabela. Trata-se de um procedimento que é invocado automaticamente quando um
comando DML é executado na tabela, sendo executado para cada linha afetada. Desta
forma, as operações que podem disparar um trigger são:

 INSERT
 UPDATE
 DELETE

Geralmente, os triggers são empregados para verificar integridade dos dados, fazer
validação dos dados e outras operações relacionadas.

Diferença entre Trigger e Procedimento Armazenado

Tanto os triggers quanto as stored procedures são objetos programáveis de um banco de dados.
Porém, eles possuem diferenças importantes entre si, que afetam o modo como são aplicados.
Algumas das principais diferenças entre trigger e procedimentos armazenados são:

 Um Trigger é associado a uma tabela.


 Os triggers são armazenados no próprio banco de dados como arquivos separados.
 Triggers não são chamados diretamente, sendo invocados automaticamente, ao contrário dos
procedimentos armazenados.
 Procedimentos armazenados podem trabalhar com parâmetros; Não passamos parâmetros
aos triggers.
 Os triggers não retornam um conjunto de resultados (resultset) ao cliente chamador.

Aplicações dos triggers

As principais aplicações dos triggers em bancos de dados são:

 Validação de Dados (tipos de dados, faixas de valores, etc).


 Rastreamento e registro de logs de atividades em tabelas.
 Verificação de integridade de dados e consistência
 Arquivamento de registros excluídos.

Modos de Disparo de um Trigger

Um Trigger em MySQL pode ser disparado de dois modos diferentes:


 BEFORE – O trigger é disparado e seu código executado ANTES da execução de
cada evento – por exemplo, antes de cada inserção de registros na tabela.
 AFTER – O código presente no trigger é executado após todas as ações terem
sido completadas na tabela especificada.

Sintaxe para criação de um trigger em MySQL

Para criar um trigger em MySQL usamos a seguinte sintaxe:

CREATE TRIGGER nome timing operação


ON tabela
FOR EACH ROW
declarações

Onde:

 timing pode ser BEFORE ou AFTER


 operação pode ser INSERT / UPDATE / DELETE

Exemplo

Neste exemplo criaremos uma tabela chamada Produto, que conterá os seguintes


dados:

 Nome do produto
 Identificação do produto (chave primária)
 Preço normal
 Preço com desconto a ser aplicado

Logo após criaremos um trigger de nome tr_desconto, cuja função será aplicar um valor
de desconto de 10% à coluna Preco_Desconto quando for disparado. Ou seja, todos os
produtos terão seu preço reduzido em 10% nesta coluna. O trigger será disparado ao
inserir um novo registro na tabela, o que faremos no passo 3. Veja o código completo
do exercício a seguir:

-- 1. Criar a tabela de exemplo:


CREATE TABLE Produto (
idProduto INT NOT NULL AUTO_INCREMENT,
Nome_Produto VARCHAR(45) NULL,
Preco_Normal DECIMAL(10,2) NULL,
Preco_Desconto DECIMAL(10,2) NULL,
PRIMARY KEY (idProduto));

-- 2. Criar o Trigger:
CREATE TRIGGER tr_desconto BEFORE INSERT
ON Produto
FOR EACH ROW
SET NEW.Preco_Desconto = (NEW.Preco_Normal * 0.90);

-- 3. Executar uma inserção que irá disparar o Trigger:


INSERT INTO Produto (Nome_Produto, Preco_Normal)
VALUES ("DVD", 1.00), ("Pendrive", 18.00);

-- 4. Verificar se trigger foi disparado observando o preço com desconto:


SELECT * FROM Produto;

Como excluir um trigger

Para excluir um trigger em MySQL usamos a declaração DROP TRIGGER, seguida do


nome do trigger, como no exemplo:

DROP TRIGGER tr_desconto;

Referência Bibliográficas

Este artigo foi retirado de: http://www.bosontreinamentos.com.br/mysql/mysql-triggers-


definicao-sintaxe-e-criacao-44/

Você também pode gostar