Como desativar um gatilho no Oracle

Como desativar um gatilho no Oracle

Os gatilhos do banco de dados, ou gatilhos para curta.

Isso difere dos procedimentos armazenados padrão, que requerem invocação explícita do usuário. Como os gatilhos são automatizados, eles são acionados ou disparados quando o evento especificado ocorre, independentemente do estado do usuário ou servidor conectado.

A maioria dos bancos de dados relacionais suporta usando gatilhos para executar tarefas automatizadas, como prevenir transações inválidas, registro de eventos, buscar e gravar estatísticas de acesso à tabela e mais.

Depois que um gatilho é criado, ele sempre é executado sempre que o evento associado ocorre. No entanto, você pode querer impedir temporariamente ou permanentemente um gatilho de executar. É aqui que o recurso de desativação do gatilho entra em jogo.

Esta postagem discutirá sobre as etapas rápidas e fáceis para desativar um gatilho em um banco de dados Oracle. Se você é novo no Oracle Triggers e gostaria de saber como criar um, verifique o seguinte link:

https: // linuxhint.com/oracle-criate-trigger

Criando um gatilho de teste

Antes de discutirmos os métodos de desativar um gatilho, vamos configurar um gatilho de amostra para fins de demonstração.

OBSERVAÇÃO: Esta seção não cobre como definir ou usar os gatilhos do banco de dados.

Queremos criar um gatilho que registre a atividade do usuário após uma operação de exclusão. Por exemplo, suponha que tenhamos uma tabela Sample_data com as informações como mostrado:

Primeiro precisamos criar uma tabela onde armazenamos os logs para cada atividade de exclusão.

O esquema da tabela é o seguinte:

Criar tabela Sample_data_logs (
número de identidade,
First_name Varchar2 (50),
ip_address varchar2 (20),
BTC_ADDRESS VARCHAR2 (50),
Credit_Card Varchar2 (50),
Identificador Varchar2 (40),
DATA DELETE_DATE,
Deleted_by Varchar2 (20)
);

Em seguida, precisamos definir um gatilho que seja executado após um evento de exclusão. A definição de gatilho é fornecida da seguinte forma:

Crie ou substitua o gatilho LOG_USER
depois de excluir
em sample_data
para cada linha
declarar
action_username varchar2 (20);
começar
Selecione o usuário em action_username de dual;
insira em sample_data_logs
valores (: antigo.eu ia,
:VELHO.primeiro nome,
:VELHO.endereço de IP,
:VELHO.btc_address,
:VELHO.Cartão de crédito,
:VELHO.identificador,
sysdate,
ação_username);
fim;

Para testar o gatilho, vamos executar uma operação de exclusão da tabela Sample_data, como mostrado:

exclua de sample_data onde id = 1;

Por fim, podemos verificar a tabela Logs para garantir que a operação de exclusão tenha sido registrada:

selecione * de sample_data_logs;

Saída:

Como podemos ver, a tabela tem uma entrada dos dados anteriores antes da exclusão, bem como o nome de usuário que realizou a atividade de exclusão e o tempo da exclusão.

Nas seções a seguir, demonstraremos como desativar o gatilho anterior. Antes de fazer isso, verifique se o seu gatilho de destino está funcional e você tem permissões suficientes para ativá -lo ou desativá -lo.

Desative um gatilho usando PL/SQL

O primeiro e mais direto método de desativar um gatilho é usar uma instrução SQL. Felizmente, o Oracle nos fornece uma declaração de gatilho alterada cuja sintaxe é fornecida da seguinte forma:

Alter trigger trigger_name desative;

Por exemplo, para desativar o gatilho LOG_USER que criamos anteriormente, podemos executar o seguinte:

alterar o gatilho log_user desativar;

Depois de executado, o gatilho não manterá mais uma cópia dos dados antigos e do usuário que executou a exclusão, conforme mostrado no seguinte:

excluir de sample_data onde id = 2;

Verifique os logs:

selecione * de sample_data_logs;

Saída:

Como podemos ver, ainda temos apenas um registro.

Desative um gatilho usando o desenvolvedor SQL

Podemos usar o utilitário de desenvolvedor SQL para desativar um gatilho na interface gráfica. Comece fazendo login no desenvolvedor do SQL.

Navegue até a seção "gatilhos":

Expanda o diretório gatilhos e localize o gatilho que você deseja desativar. Clique com o botão direito do mouse no nome do gatilho e selecione "Desativar".

Confirme a operação "Desativar" e clique em "Aplicar".

Uma vez desativado, o Oracle cinza o gatilho, indicando que está inativo.

Conclusão

Este artigo explorou como desativar um gatilho Oracle usando instruções PL/SQL e utilitário de desenvolvedor SQL.