Gatilho (banco de dados)

 Nota: Este artigo é sobre recurso de programação de banco de dados. Para o estúdio de animação japonês, veja Studio Trigger.

Gatilho ou trigger é um recurso de programação executado sempre que o evento associado ocorrer. Trigger é um tipo especial de procedimento armazenado, que é executado sempre que há uma tentativa de modificar os dados de uma tabela que é protegida por ele.

É muito utilizada para ajudar a manter a consistência dos dados ou para propagar alterações em um determinado dado de uma tabela para outras. Um bom exemplo é um gatilho criado para controle de quem alterou a tabela, nesse caso, quando a alteração for efetuada, o gatilho é "disparado" e grava em uma tabela de histórico de alteração, o usuário e data/hora da alteração.

Em SQL, para se criar um trigger utiliza-se do CREATE TRIGGER, e para removê-lo deve-se usar DROP TRIGGER. Um gatilho típico é composto de três componentes, que seguem o Modelo: evento - condição - ação[1].

Exemplo: (MS-SQL Server)

CREATE TRIGGER nome_do_gatilho ON dono.Nome_da_tabela
FOR INSERT (ou SELECT ou UPDATE ou DELETE)
AS
Codigo para execucao

Outro exemplo:

CREATE TRIGGER <Nome>
         Momento_Exec (BEFORE/AFTER)
         Evento_disparador (INSERT/UPDATE/DELETE)
ON tabela_evento
[REFERENCING NEW AS novo_nome OLD AS nome_antigo] (Opcional, em caso de delete para copiar os dados para outra tabela)
[nivel_gatilho] (FOR EACH ROW (linha) / FOR EACH STATEMENT (comando) - determina como será executado o BLOCO_COMANDOS_SQL)
[condição_exec] (WHEN <condição>)
BLOCO_COMANDOS_SQL

Referências

  1. Programando em SQL - Profa. Késsia Marchi (http://kessia.blogs.unipar.br/files/2009/04/trigger.pdf)

Ver também

  • Regras
  • Procedimento armazenado
  • Default
  • Visão
  • Índice
  • Generalizadores
  • Tabelas
  • v
  • d
  • e
Modelagem  · Normalização  · Estrutura de banco de dados  · GDBS distribuídos  · Integridade referencial  · Álgebra relacional  · Cálculo relacional  · Banco de dados relacional  · Mapeamento objeto-relacional  · Modelo relacional  · Banco de dados objeto-relacional  · Processamento de transação
Conceitos
Banco de dados  · ACID  · CRUD  · Null  · Chave candidata  · Chave estrangeira  · Chave primária  · Superkey  · Surrogate key  · Axiomas de Armstrong  · NoSQL
Objetos
Relação (Tabela)  · Vista  · Trigger  ·  · Cursor  · Log de transação  · Transação  · Índice  · Procedimento armazenado  · Partição
Componentes
Controle de concorrência  · Dicionário de dados  · JDBC  · ODBC  · Linguagem de consulta  · Query optimizer  · Query plan
Funções
Gestão e automatização  · Otimização de consulta  · Replicação
Produtos disponíveis no mercado: Orientados a objeto (Comparativo)  · Relacionais (Comparativo)  · Orientados a documento  · NoSQL  · NewSQL
Ícone de esboço Este artigo sobre banco de dados é um esboço. Você pode ajudar a Wikipédia expandindo-o.
  • v
  • d
  • e
  • v
  • d
  • e
Tipos de controles
Partes do controle
Botões físicos
Botões Sensitivos
Relacionados
Página de categoria Categoria