Składnia:
Poniżej znajduje się prosta składnia do generowania spustu:
>> Utwórz Trigger Trigger_name [przed | po | zamiast] nazwa zdarzenia na nazwie_name [---- Trigger Logic];
Oto wyjaśnienie powyższego zapytania ogólnego.
Aby krótko zrozumieć koncepcję wyzwalacza, uruchom powłokę PostgreSQL z aplikacji. Zmień serwer, jeśli chcesz pracować na innym serwerze lub naciśnij Enter z klawiatury. Dodaj nazwę bazy danych, nad którą chcesz pracować, w przeciwnym razie zostaw ją taką, jaka jest i dotknij Enter. Jak widać, obecnie pracujemy nad portem 5432 jako domyślnym; możesz to również zmienić. Następnie podaj nazwę użytkownika inną niż Postgres, jeśli chcesz pracować z innym użytkownikiem, w przeciwnym razie zostaw to puste i naciśnij przycisk Enter. Teraz twoja powłoka poleceń jest gotowa do użycia.
Wyzwalacz po wstawieniu polecenia
Spójrzmy na przykład spustu, gdy polecenie Insert zostało użyte jako zdarzenie spustowe. W tym celu musimy utworzyć dwa nowe tabele, e.G., „Zatrudnienie” i „Audyt”. Tabela „Zatrudnienie” będzie zawierać osobiste rekordy pracowników od konkretnej firmy, a tabela „Audyt” będzie zawierać informacje o tym, kiedy pracownicy dołączyli do firmy. Zapytania o tworzenie tabel podano poniżej.
>> Utwórz tabelę Zatrudnienie (ID Liczba całkowita nie zerowa podstawowa, nazwa varchar (100) nie null, wiek varchar (100) nie null, wynagrodzenie varchar (100) nie null);
>> Utwórz audyt tabeli (empid liczba całkowita nie null, entent_date varchar (100) not null);
Musisz utworzyć procedurę, która zostanie automatycznie wykonana lub działać, gdy wywołanie zostanie wywołane. Zostanie użyty w następnym poleceniu Utwórz Trigger. Z poniższego polecenia możesz uzyskać pomysł, że tworzymy procedurę „auditlogfunc ()”, która zwróci wyzwalacz jako zmienną „$ examp_table $”. Funkcja zaczyna się od klauzuli początkowej, a następnie instrukcji Insert. Niniejsza instrukcja Insert wkłada automatyczny identyfikator i bieżący czas za pomocą wbudowanej funkcji do tabeli „Audytu” i zwracając ten wynik do spustu.
Czas wygenerować wyzwalacz za pomocą polecenia Utwórz Trigger. W tabeli tworzymy spust o nazwie „emp_trig”. Klauzula po wstawieniu oznacza, że ten wyzwalacz będzie działał dopiero po wykonaniu polecenia Insert. Dla każdego wiersza oznacza wykonanie każdego polecenia wstawki, ten wyzwalacz wywoła i wykonuje procedurę „auditlogfunc ()” utworzoną tuż wcześniej.
>> Utwórz Trigger emp_trig po wstawieniu na zatrudnienie dla każdego wiersza Wykonaj procedurę auditLogfunc ();
Czas wstawić niektóre dane do tabeli „zatrudnić”. Wykonaj poniższe polecenie Wstaw w skorupce.
>> Wstaw do zatrudniania (id, nazwa, wiek, pensja) wartości („1”, „Paul”, „34”, „60000”);
Spójrz na stół „zatrudnicie”. Dane zostały pomyślnie dodane do polecenia Insert.
Teraz zobacz stół „audytu”. Możesz zobaczyć, jest również aktualizowany ze względu na wyzwalanie „emp_trig” i auditlogfunc ().
Wyzwala się polecenie aktualizacji
Będziemy teraz patrzeć na przykład spustu za pomocą polecenia aktualizacji jako zdarzenia spustu. Musimy ponownie utworzyć nową procedurę z inną „aktualizacją nazw”, jak przedstawiono na obrazie. Ta procedura wprowadzi również rekordy w tabeli „audytu” po wezwaniu.
Teraz utwórz nowy wyzwalacz o nazwie „aktualizacja_emp” za pomocą polecenia Utwórz Trigger. Będzie to działać dopiero po wykonaniu zapytania aktualizacji w tabeli i wywoła procedurę „Aktualizacja”.
Zaktualizuj tabelę „Zastosuj”, ustawiając jego identyfikator na „2”.
Pobierz zapisy tabeli „zatrudniaj”, aby wyświetlić zmiany zgodnie z dołączaniem poniżej.
Jak widać na tabeli „Audyt”, został on zreorganizowany, gdy stół „zatrudni” został zaktualizowany.
Wyzwolenie po poleceniu Usuń
Otwórz pgadmin 4 od aplikacji do pracy na GUI PostgreSQL. W ramach „testu” schematu odkryjesz listę tabel. Utwórz nową tabelę „EMP” i tę samą tabelę „Audytu”.
Tym razem wywołamy polecenie Trigger przez polecenie Usuń. Poniżej znajduje się tabela „EMP” z niektórymi rekordami.
Oto tabela audytu z dwoma poprzednimi aktualizacjami.
Utwórz procedurę o nazwie „del ()”, aby uruchomić wprowadzenie w tabeli „Audytu” po usunięciu rekordów z tabeli „EMP”.
Utwórz wyzwalacz „Del_trig” za pomocą zapytania Utwórz Trigger. Ten wyzwalacz wykona procedurę „DEL”, gdy na tabeli zostanie wykonana klauzula usunięcia „EMP”.
Usuńmy rekord z tabeli „EMP”, w którym pracownik „id” to „5”. Usuwa jeden wiersz z tabeli „EMP”.
Pobierz zapisy tabeli „EMP” i spójrz na to. Możesz zobaczyć, że wiersz został usunięty tam, gdzie „id” wynosił „5”.
Teraz wyodrębnij rekordy tabeli „Audytu”, a zauważysz, że została ona zaktualizowana, ponieważ operacja usunięcia została wykonana w tabeli „EMP”.
Wniosek:
Zrobiliśmy prawie każdy niezbędny przykład, aby zrozumieć koncepcję wyzwalacza podczas wykonywania operacji wstawki, aktualizacji i usuwania.