Alguns benefícios do uso de gatilhos
Sintaxe
A sintaxe de criar um gatilho é dada abaixo.
Crie [ou substitua] [restrição] Nome do gatilho Antes | Depois | Em vez de event [ou…]Pré-requisitos
A. Instale o PostGresql
Você deve instalar a versão mais recente dos pacotes PostGresql no sistema operacional Linux antes de executar as instruções SQL mostradas neste tutorial. Execute os seguintes comandos para instalar e iniciar o PostgreSQL:
$ sudo apt-get -y install postgresql postgresql-contra
$ sudo SystemCtl Iniciar PostgreSQL.serviço
B. Execute o seguinte comando para fazer login no PostgreSQL com privilégio de root.
$ sudo -u postgres psql
C. Você pode criar um banco de dados chamado “testdb ” executando a seguinte instrução SQL.
# Criar banco de dados TestDB;Se você quiser criar uma tabela para o testdb banco de dados, então você tem que digitar "\ C" Para alterar o banco de dados. Mas neste tutorial, eu não mudei o banco de dados, e a tabela e todas as funções foram criadas no banco de dados padrão nomeado PostGres.
Crie uma tabela chamada professores e cursos com alguns registros para testar o uso de gatilhos que serão criados posteriormente neste tutorial.
Crie professores de mesa (Exemplos de gatilho
Cada gatilho está associado a uma função PostgreSQL. Então, você precisa criar a função antes de criar o gatilho. A maneira de criar diferentes tipos de gatilhos foi demonstrada nesta parte do tutorial.
Exemplo 1: Crie antes do Inserir Trigger
A inserção anterior desencadeia disparos antes de realizar qualquer operação de inserção. Execute a seguinte instrução SQL para criar uma função nomeada antes_insert () que será usado em um Antes de inserir acionar. Um dos principais propósitos de usar um gatilho é a validação de dados. A função a seguir verificará se os campos específicos estão vazios ou não. Se algum dos valores do campo permanecer vazio, uma mensagem de erro específica será levantada. Outra validação será verificada para o nome campo e uma mensagem de erro será levantada se o comprimento deste campo for menor que 5. A próxima declaração condicional é usada para concatenar o valor da string “+88” com o contact_no Se o comprimento do contact_no campo é 11.
Crie ou substitua a função Antes_insert ()A saída a seguir aparecerá se a função for criada com sucesso no PostGres base de dados.
Execute a seguinte instrução SQL para criar um gatilho nomeado check_before_insert que executará o antes_insert () função antes de inserir o novo registro para o professores mesa.
Crie Trigger check_before_insertA saída a seguir aparecerá se o gatilho for criado com sucesso.
Execute a seguinte declaração de inserção que contém todos os dados válidos.
Insira nos professores (nome, endereço, contato_no)A saída a seguir aparecerá se o novo registro for inserido com sucesso.
Execute a seguinte declaração de inserção que contém os dados inválidos para o campo Nome.
Insira nos professores (nome, endereço, contato_no)A seguinte mensagem de erro será exibida para o valor de nome inválido.
Execute a seguinte declaração de inserção que contém o valor vazio para o endereço e contact_no campos e o valor vazio para esses campos é inválido.
Insira nos professores (nome, endereço, contato_no)A seguinte mensagem de erro será exibida para os valores vazios.
Execute a seguinte instrução Select para verificar quais registros são inseridos após o uso do gatilho antes da inserção.
Selecione * dos professores;A saída a seguir mostra que apenas um registro é inserido após o uso do gatilho.
Exemplo 2: Crie após excluir o gatilho
O gatilho após excluir dispara após excluir qualquer registro da tabela específica. Execute a seguinte instrução SQL para criar uma função nomeada After_Delete () que será usado em um Depois de excluir gatilho para excluir as linhas relacionadas do cursos tabela quando um registro é excluído do professores' mesa. Aqui, um velho.eu ia tem sido usado para rastrear o excluído eu ia de professores' mesa.
Crie função After_Delete ()A saída a seguir aparecerá se a função for criada com sucesso no PostGres base de dados.
Execute a seguinte instrução SQL para criar um gatilho nomeado delete_teacher que executará o After_Delete () função depois de excluir um registro do professores' tabela que excluirá os registros do cursos Tabela onde o professor_id o valor corresponde ao excluído eu ia valor do professores' mesa.
Crie Trigger Delete_teacherA saída a seguir aparecerá se o gatilho for criado com sucesso.
Execute a seguinte declaração de excluir que excluirá o registro da tabela de professores onde o eu ia O valor é 1. O delete_teacher o gatilho será disparado se algum registro for excluído do professores' mesa.
Excluir dos professores onde id = 1;A saída a seguir mostra que um registro foi excluído da mesa dos professores. Então o delete_teacher O gatilho será disparado e excluirá todos os registros da tabela de cursos que contém 1 no professor_id campo.
Agora, execute os seguintes comandos selecionados para verificar quais registros são excluídos do professores e cursos mesas.
Selecione * dos professores;A saída mostra que um registro foi excluído da tabela dos professores e dois registros foram excluídos da tabela de cursos usando o gatilho.
Exemplo 3: Crie em vez de atualizar o gatilho
O gatilho em vez de atualizar pode ser aplicado apenas nas visualizações da tabela. Então, você precisa criar uma visão da tabela e uma função para testar o uso desse tipo de gatilho. Execute a seguinte instrução SQL para criar uma função nomeada insert_course () que atualizará os valores do professores e a cursos tabela depois de inserir um novo recorde para o cursos mesa. O objetivo desta função é atribuir um professor para o novo curso se o professor estiver disponível.
Crie ou substitua a função insert_course ()A saída a seguir aparecerá se a função for criada com sucesso no PostGres base de dados.
Execute o seguinte comando SQL para criar uma visão da tabela de cursos.
Criar view courses_view comoA saída a seguir aparecerá se a visualização for criada com sucesso.
Agora, execute a seguinte declaração SQL para criar o instrumento de inserção de gatilho nomeado update_data isso será demitido quando um novo registro for inserido usando o create_view visualizar.
Crie Trigger Update_dataA saída a seguir aparecerá se o gatilho for criado com sucesso.
Execute a seguinte declaração de inserção para inserir um novo registro na tabela de cursos usando Courses_View visualizar.
Insira em Courses_View (nome, Credit_hour)A saída a seguir aparecerá se os dados forem inseridos usando com sucesso a visualização.
Agora, execute as seguintes declarações selecionadas para verificar como os cursos e as tabelas de professores foram modificados depois de inserir um novo registro na tabela de cursos usando a exibição.
Selecione * dos professores;A saída a seguir mostra que um novo registro foi inserido na tabela de cursos e o campo disponível do professores' A tabela foi atualizada de "t" para "f", onde o valor de identificação é 3, e esse valor de identificação foi atualizado no cursos Tabela para atribuir este professor para o curso recém -inserido.
Conclusão
Muitas tarefas de banco de dados podem ser realizadas automaticamente usando um gatilho no banco de dados PostGresql. Cada gatilho é executado usando uma função específica. Muitos propósitos de uso de gatilhos foram explicados neste tutorial, criando vários gatilhos com a função. Três tipos diferentes de gatilhos foram criados aqui que ajudarão os novos usuários do PostGresql a conhecer a maneira de criar e usar gatilhos no banco de dados PostGresql.