PostGresql Crie gatilho após inserção/atualização/exclusão

PostGresql Crie gatilho após inserção/atualização/exclusão
Sempre que uma ação de mudança definida (SQL Insert, Atualize, Excluir ou Truncate Declaração) é realizada em uma tabela definida, um gatilho é um conjunto de eventos em série que são executados automaticamente. Os gatilhos podem ser usados ​​para impor regras de negócios, autenticar informações de entrada e manter uma trilha de auditoria. Os gatilhos do SQL são implementados de acordo com o formato SQL. Inclui estruturas usadas em várias linguagens de programação, permitindo que você declare variáveis ​​locais, monitore o fluxo do processo com declarações, alocem resultados de declaração para variáveis ​​e lidar com erros. Além disso, depois de construir um gatilho para algo, como uma tabela, o gatilho é imediatamente removido assim que a tabela for removida. Veremos como os gatilhos do PostgreSQL funcionam ao longo deste segmento.

Sintaxe:

A seguir, a sintaxe simples para gerar um gatilho:

>> Crie Trigger Trigger_Name [antes | After | em vez de] Nome de eventos em tabela_name [---- Trigger Logic];

Aqui está a explicação da consulta geral acima.

  • Trigger_name: Nome de um gatilho
  • Antes, depois, em vez de: Termos que decidem quando o gatilho seria ativo
  • Nome do evento: Título da ocorrência que pode desencadear o gatilho (poderia ser, seja de inserção ou atualização ou exclusão)
  • Nome da tabela: Especifica a tabela sobre a qual o gatilho será construído

Para entender o conceito de gatilho brevemente, inicie o shell PostGresql a partir dos aplicativos. Altere o servidor se quiser trabalhar em outro servidor ou pressione Enter do seu teclado. Adicione o nome do banco de dados em que você deseja trabalhar, caso contrário, deixe -o e toque. Como você pode ver, atualmente trabalhamos na porta 5432 como padrão; você também pode mudar isso. Depois disso, forneça um nome de usuário que não seja o Postgres, se você quiser trabalhar com outro usuário, ou então deixe -o em branco e pressione o botão Enter. Agora seu shell de comando está pronto para ser usado.

Acionar o comando inserir

Vejamos o exemplo de um gatilho quando o comando Insert for usado como um evento de gatilho. Para isso, temos que criar duas novas tabelas, e.g., “Empregar” e “Auditoria”. A tabela “Empregar” conterá os registros pessoais dos funcionários de uma empresa específica e a tabela “Auditoria” conterá as informações sobre quando os funcionários ingressarem na empresa. As consultas para criar as tabelas são dadas abaixo.

>> Criar a tabela empregar (ID inteiro não é a chave primária nula, nome Varchar (100) não nulo, idade varchar (100) não nulo, salário varchar (100) não nulo);
>> Crie auditoria de tabela (inteiro empid não nulo, entradas_date varchar (100) não nulo);

Você deve criar um procedimento que seja executado automaticamente ou funcionar quando o gatilho será chamado. Será usado no próximo comando Criar Trigger. No comando abaixo, você pode ter uma ideia de que estamos criando um procedimento "AuditLogFunc ()", que retornará um gatilho como variável "$ examp_table $". A função começa com a cláusula Begin, seguida pela declaração de inserção. Esta instrução Insert insere ID automática e data atual usando a função interna na tabela "Auditoria" e retornando esse resultado para acionar.

É hora de gerar um gatilho usando o comando Create Trigger. Criamos um gatilho chamado "EMP_TRIG" na tabela "Empregue". A cláusula após a inserção significa que esse gatilho só funcionará após a execução do comando de inserção. Para cada linha significa sobre a execução de todos.

>> Crie o Trigger EMP_TRIG após a inserção do emprego para cada procedimento de execução de linha AuditLogFunc ();

É hora de inserir alguns dados na tabela "empregar". Execute o comando inserir abaixo no shell.

>> Inserir em empregar (id, nome, idade, salário) valores ('1', 'Paul', '34', '60000');

Dê uma olhada na mesa "emprega". Os dados foram adicionados com sucesso com o comando de inserção.

Agora tenha um vislumbre da tabela de "auditoria". Você pode ver, ele também é atualizado devido ao gatilho "EMP_TRIG" e AUDITLOGFUNC ().

Disparar com o comando de atualização

Agora estaremos analisando um exemplo de gatilho usando o comando de atualização como um evento de gatilho. Temos que criar um novo procedimento novamente com o nome diferente "Atualização", conforme apresentado na imagem. Este procedimento também inserirá registros na tabela de 'auditoria' após a chamada.

Agora, crie um novo gatilho chamado "update_emp" usando o comando Create Trigger. Isso só funcionará após a execução da consulta de atualização na tabela e chamará o procedimento de "atualização".

Atualize a tabela "Empregue" definindo seu ID para "2".

Busque os registros de uma tabela "empregar" para ver as alterações conforme anexado abaixo.

Como você pode ver na tabela "Auditoria", ela foi reorganizada à medida que a tabela "emprega" foi atualizada.

Acionar o comando excluir

Abra o PGADMIN 4 de aplicações para trabalhar no GUI PostgreSQL. Sob o “teste” do esquema, você descobrirá uma lista de tabelas. Crie uma nova tabela "EMP" e a mesma tabela "Audit".

Desta vez, invocaremos o comando Trigger pelo comando Delete. Abaixo está a tabela “Emp” com alguns registros.

Aqui está a tabela de auditoria com as duas atualizações anteriores.

Crie um procedimento chamado "del ()" para acionar a inserção na tabela "Auditoria" ao excluir os registros da tabela "Emp".

Crie um gatilho "del_trig" usando a consulta Create Trigger. Este gatilho executará o procedimento "del" quando alguma cláusula de exclusão será realizada na tabela "Emp".

Vamos excluir um recorde da tabela "Emp", onde o funcionário "ID" é "5". Ele excluirá uma linha da tabela "empinada".

Busque os registros da tabela “emp. E dê uma olhada nela. Você pode ver que a linha foi removida onde o "id" era "5".

Agora extraia os registros da tabela “Auditor.

Conclusão:

Fizemos quase todos os exemplo essenciais para entender o conceito de gatilho durante a execução de operações de inserção, atualização e exclusão.