Jak wyłączyć wyzwalacz w Oracle

Jak Wylaczyc Wyzwalacz W Oracle



Wyzwalacze bazy danych lub w skrócie wyzwalacze odnoszą się do procedur składowanych, które są wykonywane w odpowiedzi na działanie zdarzenia w danym obiekcie bazy danych.

Różni się to od standardowych procedur przechowywanych, które wymagają jawnego wywołania od użytkownika. Ponieważ wyzwalacze są zautomatyzowane, są wyzwalane lub uruchamiane, gdy wystąpi określone zdarzenie, niezależnie od stanu połączonego użytkownika lub serwera.







Większość relacyjnych baz danych obsługuje wyzwalacze do wykonywania zautomatyzowanych zadań, takich jak zapobieganie nieprawidłowym transakcjom, rejestrowanie zdarzeń, pobieranie i rejestrowanie statystyk dostępu do tabel i nie tylko.



Po utworzeniu wyzwalacza jest on zawsze uruchamiany za każdym razem, gdy wystąpi powiązane zdarzenie. Możesz jednak chcieć tymczasowo lub na stałe uniemożliwić wykonanie wyzwalacza. W tym miejscu do gry wchodzi funkcja wyłączania wyzwalacza.



W tym poście omówimy szybkie i łatwe kroki wyłączania wyzwalacza w bazie danych Oracle. Jeśli jesteś nowy w wyzwalaczach Oracle i chcesz wiedzieć, jak je utworzyć, sprawdź następujące łącze:





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

Tworzenie wyzwalacza testowego

Zanim omówimy metody wyłączania wyzwalacza, skonfigurujmy przykładowy wyzwalacz do celów demonstracyjnych.



UWAGA : Ta sekcja nie obejmuje sposobu definiowania wyzwalaczy bazy danych ani korzystania z nich.

Chcemy utworzyć wyzwalacz, który rejestruje aktywność użytkownika po operacji usuwania. Załóżmy na przykład, że mamy tabelę sample_data zawierającą następujące informacje:

Najpierw musimy utworzyć tabelę, w której będziemy przechowywać dzienniki dla każdego działania związanego z usuwaniem.

Schemat tabeli jest następujący:

utwórz tabelę sample_data_logs(
numer identyfikacyjny,
imię varchar2(50),
adres_ip varchar2(20),
adres_btc varchar2(50),
karta_kredytowa varchar2(50),
identyfikator varchar2(40),
data_daty usunięcia data,
usunięty_by varchar2(20)
);

Następnie musimy zdefiniować wyzwalacz, który jest wykonywany po zdarzeniu usuwania. Definicja wyzwalacza jest następująca:

utwórz lub zamień wyzwalacz log_user
po usunięciu
na dane_próbki
dla każdego rzędu
ogłosić
akcja_nazwa_uzytkownika varchar2(20);
rozpocząć
wybierz użytkownika do action_username z dual;
wstaw do sample_data_logs
wartości (:OLD.id,
:OLD.imię,
:OLD.adres_ip,
:OLD.adres_btc,
:OLD.karta_kredytowa,
:OLD.identyfikator,
system,
akcja_nazwa_użytkownika);
kończyć się;

Aby przetestować wyzwalacz, wykonajmy operację usuwania z tabeli sample_data, jak pokazano:

usuń z sample_data gdzie id = 1;

Na koniec możemy sprawdzić tabelę dzienników, aby upewnić się, że operacja usunięcia została zarejestrowana:

wybierz * z sample_data_logs;

Wynik:

Jak widać, w tabeli znajdują się wpisy poprzednich danych przed usunięciem, a także nazwa użytkownika, który wykonał czynność usunięcia oraz czas usunięcia.

W poniższych sekcjach pokażemy, jak wyłączyć poprzedni wyzwalacz. Zanim to zrobisz, upewnij się, że docelowy wyzwalacz działa i masz wystarczające uprawnienia, aby go włączyć lub wyłączyć.

Wyłącz wyzwalacz za pomocą PL/SQL

Pierwszą i najprostszą metodą wyłączenia wyzwalacza jest użycie instrukcji SQL. Na szczęście Oracle udostępnia nam instrukcję ALTER TRIGGER, której składnia wygląda następująco:

ALTER TRIGGER nazwa_wyzwalacza WYŁĄCZ;

Na przykład, aby wyłączyć wyzwalacz log_user, który stworzyliśmy wcześniej, możemy wykonać następujące czynności:

zmień wyzwalacz log_user wyłącz;

Po uruchomieniu reguła nie będzie już przechowywać kopii starych danych i użytkownika, który wykonał usunięcie, jak pokazano poniżej:

usuń z sample_data gdzie id = 2;

Sprawdź logi:

wybierz * z sample_data_logs;

Wynik:

Jak widać, wciąż mamy tylko jeden rekord.

Wyłącz wyzwalacz za pomocą programisty SQL

Możemy użyć narzędzia SQL Developer, aby wyłączyć wyzwalacz w interfejsie graficznym. Zacznij od zalogowania się do SQL Developera.

Przejdź do sekcji „Wyzwalacze”:

Rozwiń katalog wyzwalaczy i znajdź wyzwalacz, który chcesz wyłączyć. Kliknij prawym przyciskiem myszy nazwę wyzwalacza i wybierz „Wyłącz”.

Potwierdź operację „Wyłącz” i kliknij „Zastosuj”.

Po wyłączeniu Oracle przyciemnia wyzwalacz, wskazując, że jest nieaktywny.

Wniosek

W tym artykule zbadano, jak wyłączyć wyzwalacz Oracle za pomocą instrukcji PL/SQL i narzędzia SQL Developer.