SlideShare uma empresa Scribd logo
TRIGGERS 
Wagner Bianchi 
Certified MySQL 5.0 Developer 
Certified MySQL 5.0 Database Administrator 
Certified MySQL 5.1 Cluster Database Administrator
Triggers 
! Um TRIGGER ou gatilho é um objeto de banco de dados, associado a uma 
tabela, definido para ser disparado, respondendo a um evento em 
particular; 
! Tais eventos são os comandos da DML (Data Manipulation Language): 
INSERT, REPLACE, DELETE ou UPDATE; 
! Podemos definir inúmeros TRIGGERS em uma base de dados 
baseados diretamente em qual dos comandos acima irá dispará-lo, 
sendo que, para cada um, podemos criar apenas um TRIGGER. 
! Os TRIGGERS poderão ser disparados para trabalharem antes ou 
depois do evento;
Triggers 
! A sintaxe geral de definição de um TRIGGER é a seguinte: 
CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name 
trigger_time trigger_event ON tbl_name FOR EACH ROW 
trigger_stmt 
! DEFINER: Quando o TRIGGER for disparado, esta opção será checada 
para checar com quais privilégios este será disparado. Utilizará os 
privilégios do usuário informado em user (´wagner´@´localhost´) ou os 
privilégios do usuário atual (CURRENT_USER). Caso essa sentença seja 
omitida da criação do TRIGGER, o valor padrão desta opção é 
CURRENT_USER(); 
! trigger_name: define o nome do procedimento, por exemplo, trg_test;
Triggers 
! trigger_time: define se o TRIGGER será ativado antes (BEFORE) ou 
depois (AFTER) do comando que o disparou; 
! trigger_event: aqui se define qual será o evento, INSERT, REPLACE, 
DELETE ou UPDATE; 
! tbl_name: nome da tabela onde o TRIGGER ficará "pendurado" aguardando 
o trigger_event; 
! trigger_stmt: as definições do que o o TRIGGER deverá fazer quando for 
disparado.
Triggers 
! No MySQL, diferentemente de outros SGBD’s, não é permitido disparar 
mensagens, por exemplo, “registro atualizado/inserido/excluído com 
sucesso”; 
! TRIGGERS não podem iniciar nem finalizar uma transação; 
! Podem conter mais de um comando em meio à BEGIN/END; 
! Podem facilmente acessar a área temporária do SGBD para se trabalhar 
com o valor de “antes” e “depois”; 
! Para cada tabela de um banco de dados, podemos ter no máximo 6 
TRIGGERS; 
! Os TRIGGERS ficam armazenados na tabela TRIGGERS, dentro do 
dicionário de dados;
Triggers 
! TRIGGERS são mais efetivos que restrições check; 
! Podem atuar em uma tabela com base em outra tabela de qualquer banco 
de dados dentro do MySQL;
Triggers 
! Eventos de um TRIGGER: 
– BEFORE: dispara o TRIGGER antes dos dados chegarem à tabela; 
– AFTER: dispara o TRIGGER após a atualização dos dados em uma 
tabela; 
mysql> create trigger trg_country_up 
-> after update 
-> on Country 
-> for each row 
-> begin 
-> set @var_old = OLD.Name; 
-> set @var_new = NEW.Name; 
-> end; 
-> // 
Query OK, 0 rows affected (0.00 sec)
Triggers 
! OLD e NEW 
– OLD: operador para ser utilizado no interior da TRIGGER para 
recuperar o valor anterior à um UPDATE, *REPLACE ou DELETE; 
– NEW: operador para ser utilizado no interior da TRIGGER para 
recuperar dados atuais a partir de comandos INSERT, *REPLACE e 
UPDATE.
Exercício 
! Artigo: MySQL - TRIGGERS 
! Com base no assunto apresentando “Triggers”, responda a 
LISTA 10. 
! Fonte de referência: http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

Mais conteúdo relacionado

PPTX
Triggers no SQL Server
PPTX
Utilizando views, stored procedures e triggers
PPTX
Prática de laboratório utilizando views, stored procedures e triggers
PPTX
Stored Procedures and Triggers
PDF
Desenvolvimento de um CRUD utilizando Stored Procedure
PPTX
Sql Server Stored Procedures
PPTX
Treinamento de SQL Básico
DOCX
Sql - Comandos dml do mysql - parte 1
Triggers no SQL Server
Utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggers
Stored Procedures and Triggers
Desenvolvimento de um CRUD utilizando Stored Procedure
Sql Server Stored Procedures
Treinamento de SQL Básico
Sql - Comandos dml do mysql - parte 1

Mais procurados (20)

PDF
Modulos SNEP
PDF
Snep arquitetura
ODP
Stored procedure
PDF
Apache Struts
ODP
Aula10 sql-ddl
PPTX
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
PDF
Stored procedure
PPTX
Net Coders Ladies SQL
ODP
Aprofundamento de DDL e DML
PPTX
Curso de PostgreSQL: Um pouco Além dos Comandos
PDF
UNIFAL - MySQL Stored Routines - 5.0/5.6
PDF
Curso de Certificação Linux LPI - Terminal Root
PPTX
T-SQL na prática com SQL SERVER Express 2012
PDF
Consultas SQL
DOCX
Comandos DDL para o MySQL
PDF
Banco de dados - Aula 1 SQL
PDF
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
PPTX
Aula05 android persistencia
PDF
24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhores
ODP
Fazendo Um Elefante Passar Debaixo da Porta - FISL
Modulos SNEP
Snep arquitetura
Stored procedure
Apache Struts
Aula10 sql-ddl
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
Stored procedure
Net Coders Ladies SQL
Aprofundamento de DDL e DML
Curso de PostgreSQL: Um pouco Além dos Comandos
UNIFAL - MySQL Stored Routines - 5.0/5.6
Curso de Certificação Linux LPI - Terminal Root
T-SQL na prática com SQL SERVER Express 2012
Consultas SQL
Comandos DDL para o MySQL
Banco de dados - Aula 1 SQL
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula05 android persistencia
24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhores
Fazendo Um Elefante Passar Debaixo da Porta - FISL
Anúncio

Semelhante a UNIFAL - MySQL Triggers - 5.0/5.6 (10)

PPTX
aula - aula de base dados 2 Triggers.pptx
PPTX
Triggers
PPTX
Introdução ao BD Postgre
PPTX
programaçãoparabancodedadospdfestudos.pptx
PDF
Minicurso PostgreSQl
PPTX
Postgre sql
PPTX
Aula09 - PL SQL - Subprogramas.pptx
PDF
Banco de Dados - MySQL Basico
PDF
ORACLE ADVANCED SECURITY
aula - aula de base dados 2 Triggers.pptx
Triggers
Introdução ao BD Postgre
programaçãoparabancodedadospdfestudos.pptx
Minicurso PostgreSQl
Postgre sql
Aula09 - PL SQL - Subprogramas.pptx
Banco de Dados - MySQL Basico
ORACLE ADVANCED SECURITY
Anúncio

Mais de Wagner Bianchi (20)

PDF
Migrations from PLSQL and Transact-SQL - m18
PDF
Maxscale switchover, failover, and auto rejoin
PDF
Meetup São Paulo, Maxscale Implementação e Casos de Uso
PDF
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
PDF
NY Meetup: Scaling MariaDB with Maxscale
PDF
Webinar: MariaDB Provides the Solution to Ease Multi-Source Replication
PDF
MySQL Multi-Source Replication for PL2016
PDF
MySQL 5.7 Multi-Source Replication
PDF
UNIFAL - MySQL 5.6 - Replicação
PDF
UNIFAL - MySQL Logs - 5.0/5.6
PDF
UNIFAL - MySQL Transações - 5.0/5.6
PDF
UNIFAL - MySQL Storage Engine - 5.0/5.6
PDF
UNIFAL - MySQL Views - 5.0/5.6
PDF
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
PDF
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
PDF
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
PPTX
Introdução ao MySQL 5.6
PPT
Mysql for IBMers
PPT
InnoDB Plugin - II Fórum da Comunidade MySQL
PPTX
MySQL Cluster Product Overview
Migrations from PLSQL and Transact-SQL - m18
Maxscale switchover, failover, and auto rejoin
Meetup São Paulo, Maxscale Implementação e Casos de Uso
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
NY Meetup: Scaling MariaDB with Maxscale
Webinar: MariaDB Provides the Solution to Ease Multi-Source Replication
MySQL Multi-Source Replication for PL2016
MySQL 5.7 Multi-Source Replication
UNIFAL - MySQL 5.6 - Replicação
UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Transações - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Views - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
Introdução ao MySQL 5.6
Mysql for IBMers
InnoDB Plugin - II Fórum da Comunidade MySQL
MySQL Cluster Product Overview

Último (20)

PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Émile Durkheim slide elaborado muito bom
PPTX
Aula sobre banco de dados com firebase db
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Aula sobre desenvolvimento de aplicativos
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
COBITxITIL-Entenda as diferença em uso governança TI
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Émile Durkheim slide elaborado muito bom
Aula sobre banco de dados com firebase db
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Processos na gestão de transportes, TM100 Col18
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Aula sobre desenvolvimento de aplicativos
Custos e liquidação no SAP Transportation Management, TM130 Col18
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Apple Pippin Uma breve introdução. - David Glotz
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...

UNIFAL - MySQL Triggers - 5.0/5.6

  • 1. TRIGGERS Wagner Bianchi Certified MySQL 5.0 Developer Certified MySQL 5.0 Database Administrator Certified MySQL 5.1 Cluster Database Administrator
  • 2. Triggers ! Um TRIGGER ou gatilho é um objeto de banco de dados, associado a uma tabela, definido para ser disparado, respondendo a um evento em particular; ! Tais eventos são os comandos da DML (Data Manipulation Language): INSERT, REPLACE, DELETE ou UPDATE; ! Podemos definir inúmeros TRIGGERS em uma base de dados baseados diretamente em qual dos comandos acima irá dispará-lo, sendo que, para cada um, podemos criar apenas um TRIGGER. ! Os TRIGGERS poderão ser disparados para trabalharem antes ou depois do evento;
  • 3. Triggers ! A sintaxe geral de definição de um TRIGGER é a seguinte: CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt ! DEFINER: Quando o TRIGGER for disparado, esta opção será checada para checar com quais privilégios este será disparado. Utilizará os privilégios do usuário informado em user (´wagner´@´localhost´) ou os privilégios do usuário atual (CURRENT_USER). Caso essa sentença seja omitida da criação do TRIGGER, o valor padrão desta opção é CURRENT_USER(); ! trigger_name: define o nome do procedimento, por exemplo, trg_test;
  • 4. Triggers ! trigger_time: define se o TRIGGER será ativado antes (BEFORE) ou depois (AFTER) do comando que o disparou; ! trigger_event: aqui se define qual será o evento, INSERT, REPLACE, DELETE ou UPDATE; ! tbl_name: nome da tabela onde o TRIGGER ficará "pendurado" aguardando o trigger_event; ! trigger_stmt: as definições do que o o TRIGGER deverá fazer quando for disparado.
  • 5. Triggers ! No MySQL, diferentemente de outros SGBD’s, não é permitido disparar mensagens, por exemplo, “registro atualizado/inserido/excluído com sucesso”; ! TRIGGERS não podem iniciar nem finalizar uma transação; ! Podem conter mais de um comando em meio à BEGIN/END; ! Podem facilmente acessar a área temporária do SGBD para se trabalhar com o valor de “antes” e “depois”; ! Para cada tabela de um banco de dados, podemos ter no máximo 6 TRIGGERS; ! Os TRIGGERS ficam armazenados na tabela TRIGGERS, dentro do dicionário de dados;
  • 6. Triggers ! TRIGGERS são mais efetivos que restrições check; ! Podem atuar em uma tabela com base em outra tabela de qualquer banco de dados dentro do MySQL;
  • 7. Triggers ! Eventos de um TRIGGER: – BEFORE: dispara o TRIGGER antes dos dados chegarem à tabela; – AFTER: dispara o TRIGGER após a atualização dos dados em uma tabela; mysql> create trigger trg_country_up -> after update -> on Country -> for each row -> begin -> set @var_old = OLD.Name; -> set @var_new = NEW.Name; -> end; -> // Query OK, 0 rows affected (0.00 sec)
  • 8. Triggers ! OLD e NEW – OLD: operador para ser utilizado no interior da TRIGGER para recuperar o valor anterior à um UPDATE, *REPLACE ou DELETE; – NEW: operador para ser utilizado no interior da TRIGGER para recuperar dados atuais a partir de comandos INSERT, *REPLACE e UPDATE.
  • 9. Exercício ! Artigo: MySQL - TRIGGERS ! Com base no assunto apresentando “Triggers”, responda a LISTA 10. ! Fonte de referência: http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html