woombo design e comunicação

MySQL Triggers

23.06.2010 Acompanhe

MySQL

Oque é um trigger ?

Trigger é uma palavra da lingua inglesa que quer dizer “gatilho”, com isso, queremos dizer que a ação “gatilho” é usada para “disparar” eventos em sequencia, no nosso caso uma sequencia de eventos em nossa base de dados, no MySQL.

Como usar o trigger ?

O trigger é uma regra, e basicamente diz que, sempre que você executa uma ação em sua base de dados, seja esse comando para remover (DELETE), atualizar (UPDATE) ou inserir (INSERT), seu banco de dados deve executar uma tarefa vinculada a primeira. Por exemplo, supondo que seu sistema crie um registro (log) de cada ação que é executada pelo seu sistema, então devem ocorer duas ações para que você obtenha sucesso, sendo elas:

  1. Solicitação inicial
  2. Criação do log

Se realizarmos essa operação do modo convencional, devemos executar duas querys, a primeira onde você irá executar a ação solicitada pelo sistema e a segunda onde o item log é criado.

[php]mysql_query("UPDATE `tabela` SET produto = ‘informacao’ WHERE id = ‘id’");
mysql_query("INSERT INTO `log` ( id, date) VALUES ( mysql_insert_id(), now())")[/php]

Com isso, foram executadas duas interações entre seu código e o banco de dados para se obter o resultado esperado, já se utilizarmos um trigger, iremos executar somente uma requisição, porém, devemos criar a instrução que irá gerar a série de eventos:
[php] CREATE TRIGGER `databaseName`.`apos_atualizar_conteudo`
BEFORE UPDATE ON `tabela` FOR EACH ROW
BEGIN
INSERT INTO `log` ( id, date) VALUES ( NEW.id, now());
END[/php]
E só então executamos a query que irá dar inicio aos eventos.
[php]mysql_query("UPDATE tabela SET produto = ‘informacao’ WHERE id = ‘id’");[/php]
Dessa forma é adiciona uma pequena sobrecarga para a consulta inicial, porém, como estamos executando uma única query para fazer duas coisas distintas, há um ganho de desempenho global (pelo menos em teoria).

Vantagens da utilização do trigger

  • O trigger fornece uma forma alternativa para verificar a integridade da sua base de dados.
  • O trigger pode pegar os erros de lógica de negócio no nível de banco de dados.
  • O trigger fornece uma forma alternativa de executar tarefas agendadas. Com trigger, você não tem que esperar para executar as tarefas agendadas. Você pode lidar com as tarefas antes ou após as alterações feitas para tabelas de banco de dados.
  • O trigger é muito útil quando você usá-lo para auditar as alterações de dados em uma tabela do banco de dados.

Desvantagens do uso do trigger

  • O trigger pode apenas fornecer validação estendida e não pode substituir todas as validações. Algumas validações simples pode ser feito em nível de aplicativo. Por exemplo, você pode validar verificar a entrada no lado cliente usando JavaScript ou no lado do servidor pelo script de servidor utilizando PHP ou ASP.NET.
  • Triggers SQL executa invisível da aplicação cliente que se conecta ao servidor de banco de dados assim que é difícil descobrir o que aconteceu camada de banco de dados subjacente.
  • O trigger executa todas as atualizações feitas na tabela, portanto, ele adiciona a carga de trabalho para o banco de dados e sistema de causa corre mais devagar.

Categorias - MySQL
Tags - Tags: , ,

2 Comentários para “MySQL Triggers”

  1. Manuel says:

    Finalmente uma explicação convicente e elucidativa. Parabéns.

  2. Hey there I am so glad I found your site, I really found you by accident, while I was browsing on Yahoo for something else, Anyways I am here now and would just like to say kudos for a fantastic post and a all round thrilling blog (I also love the theme/design), I don韙 have time to read it all at the minute but I have book-marked it and also included your RSS feeds, so when I have time I will be back to read much more, Please do keep up the fantastic job.

Deixe seu comentário

Por favor, preencha corretamente todos os campos em vermelho !

Nome (obrigatório)

Email (obrigatório)

Website

Comentários (obrigatório)

feito com wordpress | alguns direitos reservados | 2005/2024