PostgreSQL

PostgreSQL Criar gatilho após INSERT / UPDATE / DELETE

PostgreSQL Criar gatilho após INSERT / UPDATE / DELETE
Sempre que uma ação de mudança definida (declaração SQL INSERT, UPDATE, DELETE ou TRUNCATE) é conduzida em uma tabela definida, um gatilho é um conjunto de eventos 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 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, aloque resultados de instruções para variáveis ​​e lide com erros. Além disso, uma vez que você constrói um gatilho para algo, como uma tabela, o gatilho é imediatamente removido assim que a tabela é removida. Veremos como os gatilhos do PostgreSQL funcionam em todo este segmento.

Sintaxe:

A seguir está a sintaxe simples para gerar um gatilho:

>> CREATE TRIGGER trigger_name [ANTES | DEPOIS | INSTEAD OF] nome do evento ON nome_tabela [---- Trigger Logic];

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

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 no teclado. Adicione o nome do banco de dados com o qual deseja trabalhar, caso contrário, deixe como está e toque em entrar. Como você pode ver, atualmente estamos trabalhando na porta 5432 como padrão; você também pode mudar isso. Depois disso, forneça um nome de usuário diferente de Postgres se quiser trabalhar com outro usuário, ou então deixe em branco e pressione o botão Enter. Agora seu shell de comando está pronto para ser usado.

TRIGGER após o comando INSERT

Vejamos o exemplo de um gatilho quando o comando INSERT foi usado como um evento gatilho. Para isso, temos que criar duas novas tabelas, e.g., “Empregar” e “auditar”. 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 ingressaram na empresa. As consultas para a criação das tabelas são fornecidas abaixo.

>> CREATE TABLE Employ (ID INTEGER NOT NULL PRIMARY KEY, Nome VARCHAR (100) NOT NULL, Idade VARCHAR (100) NOT NULL, Salário VARCHAR (100) NOT NULL);

>> CREATE TABLE audit (empid INTEGER NOT NULL, entry_date VARCHAR (100) NOT NULL);

Você tem que criar um procedimento que será executado automaticamente ou funcionará quando o gatilho for chamado. Será usado no próximo comando CREATE TRIGGER. A partir do 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 instrução INSERT. Esta instrução INSERT insere id automática e data-hora atual usando a função embutida na tabela de “auditoria” e retornando este resultado para TRIGGER.

É hora de gerar um TRIGGER usando o comando CREATE TRIGGER. Nós criamos uma trigger chamada “emp_trig” na tabela “Employ”. A cláusula AFTER INSERT ON significa que este gatilho só funcionará após a execução do comando de inserção. PARA CADA LINHA significa na execução de cada comando INSERT, este gatilho irá chamar e executar o procedimento “auditlogfunc ()” criado antes.

>> CRIAR ACIONADOR emp_trig APÓS INSERIR EM EMPREGO PARA CADA PROCEDIMENTO DE EXECUÇÃO DE LINHA auditlogfunc ();

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

>> INSERIR EM emprego (ID, Nome, Idade, Salário) VALORES ('1', 'Paulo', '34', '60000');

Dê uma olhada na tabela “empregar”. Os dados foram adicionados com sucesso com o comando INSERT.

Agora dê uma olhada na tabela de "auditoria". Você pode ver, ele também é atualizado devido ao gatilho “emp_trig” e auditlogfunc ().

TRIGGER Upon UPDATE Command

Estaremos agora olhando para um exemplo de um gatilho usando o comando UPDATE como um evento de gatilho. Temos que criar um novo procedimento novamente com o nome diferente de "atualização", conforme apresentado na imagem. Este procedimento também irá inserir registros na tabela de 'auditoria' mediante chamada.

Agora, crie um novo gatilho chamado “update_emp” usando o comando CREATE TRIGGER. Isto só funcionará após a execução da consulta UPDATE na tabela empregada e chamará o procedimento de “atualização”.

Atualize a tabela "empregar", definindo seu ID para "2".

Busque os registros de uma tabela “empregar” para ver as mudanças conforme anexado abaixo.

Como você pode ver na tabela “auditoria”, ela foi reorganizada conforme a tabela “empregar” foi atualizada.

TRIGGER após o comando DELETE

Abra o pgAdmin 4 dos aplicativos para trabalhar na GUI PostgreSQL. No esquema “teste”, você descobrirá uma lista de tabelas. Crie uma nova tabela “emp” e a mesma tabela “audit”.

Desta vez, vamos invocar o comando de gatilho 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 denominado “Del ()” para acionar a inserção na tabela “audit” ao excluir os registros da tabela “emp”.

Crie um gatilho “del_trig” usando a consulta CREATE TRIGGER. Esta trigger irá executar o procedimento “Del” quando alguma cláusula DELETE for executada na tabela “emp”.

Vamos deletar um registro da tabela “emp” onde o funcionário “id” é “5”. Ele irá deletar uma linha da tabela “emp”.

Pegue 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 “audit” e você notará que ela foi atualizada porque a operação DELETE foi realizada na tabela “emp”.

Conclusão:

Fizemos quase todos os exemplos essenciais para entender o conceito de TRIGGER ao executar as operações INSERT, UPDATE e DELETE.

O botão do meio do mouse não funciona no Windows 10
O botão do meio do mouse ajuda você a percorrer longas páginas da web e telas com muitos dados. Se isso parar, você vai acabar usando o teclado para r...
Como alterar os botões esquerdo e direito do mouse no PC com Windows 10
É normal que todos os dispositivos de mouse de computador sejam ergonomicamente projetados para usuários destros. Mas existem dispositivos de mouse di...
Emular cliques do mouse passando o mouse usando o mouse sem cliques no Windows 10
Usar um mouse ou teclado na postura errada de uso excessivo pode resultar em muitos problemas de saúde, incluindo tensão, síndrome do túnel do carpo e...