Olá Pessoal, aqui estou em mais uma Quick Tips para falar com vocês um pouco mais de banco de dados. Para ser mais exato vamos falar de MySql, especificamente de um recurso chamado Events que temos disponível a partir do MySql 5.1.
Como você deve saber o padrão SQL conhecido como ANSI, prevê alguns objetos padrão em banco de dados, por exemplo: Tables, Views, Procedures, Function, Triggers, Users, etc. Em um banco dados podemos criar e manter um ou mais tipos destes objetos através das instruções DDL como Create e Alter.
O MySql vai um pouco mais além. Com ele temos a opção de criarmos um outro tipo de Objeto chamado Event. Para que você possa entender, um Event é como se fosse um Trigger que pudesse ser programada para disparar, ou melhor, um Event é exatamente isso. Para quem não sabe um Trigger, ou gatilho, é um procedimento armazenado no banco de dados que fica associado a uma, e somente uma tabela, que é disparado quando esta referida tabela sobre uma ação. Essas ações podem ser inclusões, exclusões e alterações de dados.
Assim sendo, eu posso criar um procedimento para que o mesmo possa ser disparado sempre que um novo registro for adicionado a uma tabela, ou mesmo quando qualquer registro for alterado. Pois bem, isso é o como funciona um Trigger, e o Event, como ele funciona.
O Event funciona de maneira parecida com a Trigger, porém ao invés da sua rotina ser disparada mediante uma ação em uma tabela você simplesmente agenda esta execução. Isso mesmo! O evento é na verdade um procedimento com hora marcara para rodar. Isso não é bacana. Você pode criar um evento para dar um delete numa tabela temporária a cada 2 minutos. Rodar a Procedure de fechamento sempre no ultimo dia de cada mês. E muito mais. Para trabalhar com Events no MySql precisando basicamente de duas coisa:
1. Habilitar o servidor para trabalhar com Eventss;
2. Criar os Events que desejamos ter em nossa base;
A principio nesta tips vamos aprender como habilitar o Events no servidor e na parte 2 criaremos alguns Eventss em nossa base de dados. Então vamos lá, mãos a obra.
Nós podemos habilitar o Events de duas formas. A primeira é via linha de comando, habilitando o uso de Events através da sessão que estamos conectados. Então utilize o prompt de comando e se conecte ao servidor MySql ou utilize o utilitário que você achar melhor, eu estarei utilizando o MySql Query Browser. Se logo conforme a Figura 1.
Figura 1 – Conectando a Base de dados Após conectar a base de dados basta executar o comando mostrado na
Figura 2 para habilitar o uso de
Events na base de dados:
Figura 2 – Habilitando o event_scheduler Para verificar se realmente habilitamos o
Events execute o código da
Figura 3
Figura 3 – Verificando se o Event está ativado
Esta é uma das maneira, porém se por ventura o servidor para os Eventss serão desabilitados. Então vamos a Segunda e mais segura forma de habilitar o servidor para trabalhar com Events.
Nesta Segunda maneira teremos que fazer uma alteração no arquivo de configuração do MySql, o famoso my.ini. Então localize-o na pasta de instalação do MySql que por padrão fica em C:\Arquivos de programas\MySql\MySql Server 5.1. Feito isso abra o arquivo my.ini e dentro da seção [MySqld] de preferência insira o comando conforme a Figura 4.
Figura 4 – Habilitando o Event pelo My.ini
Basta agora reiniciar o servidor para que o Events esteja ativo no servidor e agora sem o risco de que ele pare em caso de pane no servidor.
Bem pessoal eu vou ficando por aqui, vale lembrar que até o momento não criamos nenhum evento apenas habilitamos o servidor para trabalhar com Events. Quando fazemos isso uma nova thread exclusiva é “startada” no servidor somente para tratar do disparo dos Events.
Abraços e até a próxima Tip.