Um gatilho é um procedimento que é disparado automaticamente quando qualquer modificação é feita em uma tabela de banco de dados. Não há opção para ligar ou executar qualquer gatilho manualmente. O principal objetivo do uso de gatilhos é manter a integridade do banco de dados e pode ser usada com as restrições de integridade referencial que força regras de integridade. Em um DBMS, quando qualquer evento de inserção, atualização e exclusão ocorre, acione o procedimento associado à tabela efetiva será executada automaticamente e executará as ações necessárias. Diferentes tipos de gatilhos são suportados pelo banco de dados. Os gatilhos são categorizados principalmente de duas maneiras. Um é antes do gatilho e outro depois do gatilho. Antes que os gatilhos sejam chamados antes que qualquer evento seja executado na tabela e depois que os gatilhos são chamados após a execução de qualquer evento na tabela. Como você instala o mariadb e aplica diferentes tipos de gatilhos no servidor de banco de dados MariaDB no Ubuntu é mostrado neste tutorial.
MariaDB Instalação:
Execute o comando abaixo para atualizar o sistema e instalar o servidor e o cliente Mariadb.
# sudo apt-get update && sudo apt-get install mariadb-server mariadb-client
Tipo 'você e pressione Enter para concluir o processo de instalação.
Execute o seguinte comando para iniciar o servidor mariadb.
# sudo systemctl start mariadb
Verifique se o servidor está funcionando corretamente ou não. A saída do comando a seguir mostrará os detalhes do status do servidor. A saída indica que Mariadb 10.1.30 Verion está funcionando.
# sudo Systemctl Status Mariadb
Execute o seguinte comando se quiser parar o servidor. Não execute este comando agora.
# sudo systemctl pare mariadb
Configure o banco de dados e as tabelas
Você precisa criar um banco de dados e duas ou mais tabelas para verificar como os gatilhos funcionam. Primeiro de tudo, execute o cliente MySQL para configurar o banco de dados. Ele solicitará a senha raiz para acessar o servidor de banco de dados.
# sudo mysql -u root
Crie um banco de dados nomeado loja.
> Criar armazenamento de banco de dados;Selecione este novo banco de dados:
> Use Store;Crie três mesas em loja banco de dados para aplicar ações de gatilho neles. Aqui, Produtos, Stock e Stock_Add Tabelas são criadas.
Crie produtos de tabelaAgora, insira alguns dados nessas três tabelas.
Crie após o gatilho
Você pode criar após o gatilho para executar qualquer ação automaticamente após a inserção ou atualização ou exclusão de registros de uma tabela específica. Aqui, produtos e ações As tabelas são selecionadas para criar após excluir o gatilho. Os dados da tabela de estoque depende dos dados da tabela de produtos. Portanto, se algum registro for removido da tabela de produtos, os registros relacionados de ações precisarão ser removidos. Crie o seguinte procedimento de gatilho para excluir qualquer registro relacionado da tabela de ações automaticamente quando qualquer registro for removido da tabela de produtos. Neste gatilho, o ID excluído é reconhecido por velho.eu ia.
Delimitador //
Depois que o gatilho é criado para a tabela de produtos. Agora você tem que testar que o gatilho está funcionando corretamente ou não. Execute a consulta a seguir para remover um registro de produtos onde eu ia é 101 e verifique os dados de tabelas de produtos e ações. Depois de executar a consulta, você encontrará que o registro relacionado da tabela de estoque é removido após o gatilho. Nenhum registro para valor de identificação, 101, será encontrado em ambas as tabelas.
Crie antes dos gatilhos
Antes de o gatilho ser usado para tomar qualquer ação antes de inserir ou atualizar ou excluir qualquer ou mais registros de uma tabela específica. Aqui, ações e stocks_add A tabela é usada para criar antes do gatilho. O valor da tabela Current_stock of Stocks depende do valor de quantidade da tabela Stocks_Add. Se você atualizar algum valor de quantidade da tabela Stocks_Add, então a tabela current_stock of Stocks precisará ser atualizada. Portanto, se algum valor de quantidade existente da tabela Stocks_Add diminuir, o current_stock de estoques será reduzido e se o valor da quantidade aumentar, o current_stock será aumentado. Crie antes do gatilho da atualização para a tabela Stocks_Add. Nesse gatilho, o valor da quantidade alterada é calculada subtraindo a quantidade antiga da nova quantidade.
Delimitador //Antes de atualizar, verifique os valores atuais de ações e tabelas estoques_add.
> Selecionar * de ações;
Suponha que você precise atualizar o valor de quantidade da tabela Stocks_Add onde ID do produto é 103 e data de entrada é 2018-01-01 qual é 30 agora. Se você quiser atualizar o valor por 75 Em seguida, execute a seguinte consulta de atualização e verifique as duas tabelas novamente. O aumento da quantidade é, 75-30 = 45. Portanto, após a atualização, o gatilho será disparado e a tabela current_stock of Stocks será definida como, 300+45 = 345.
O uso de dois tipos de gatilhos é mostrado neste tutorial. De maneira semelhante, você pode criar outros tipos de antes e depois do gatilho para suas tabelas de banco de dados com base em seus requisitos.