Niektóre korzyści z używania wyzwalaczy
Składnia
Składnia tworzenia spustu jest podana poniżej.
Utwórz [lub zamień] [ograniczenie] Nazwa wyzwalania przed | Po | Zamiast event [lub…]Wymagania wstępne
A. Zainstaluj PostgreSQL
Musisz zainstalować najnowszą wersję pakietów PostgreSQL w systemie operacyjnym Linux przed wykonaniem instrukcji SQL pokazanych w tym samouczku. Uruchom następujące polecenia, aby zainstalować i uruchom PostgreSQL:
$ sudo apt-get -y instalacja Postgresql PostgreSQL-Contib
$ sudo systemctl start postgresql.praca
B. Uruchom następujące polecenie, aby zalogować się do PostgreSQL z uprawnieniami root.
$ sudo -u postgres psql
C. Możesz utworzyć bazę danych o nazwie „testdb ” Uruchamiając następującą instrukcję SQL.
# Utwórz bazę danych testDB;Jeśli chcesz utworzyć tabelę w testdb baza danych, wtedy musisz wpisać "\C" Aby zmienić bazę danych. Ale w tym samouczku nie zmieniłem bazy danych, a tabela i wszystkie funkcje zostały utworzone w domyślnej bazie danych Postgres.
Utwórz tabelę o nazwie nauczyciele I kursy z niektórymi rekordami do przetestowania użycia wyzwalaczy, które zostaną utworzone później w tym samouczku.
Utwórz nauczycieli tabeli (Przykłady wyzwalają
Każdy spust jest powiązany z funkcją PostgreSQL. Musisz więc utworzyć funkcję przed utworzeniem spustu. W tej części samouczka pokazano sposób tworzenia różnych rodzajów wyzwalaczy.
Przykład-1: Utwórz przed wstawieniem wyzwalacza
Przed wstawką wyzwala pożary przed wykonaniem jakiejkolwiek operacji wkładki. Uruchom następującą instrukcję SQL, aby utworzyć funkcję o nazwie przed_insert () które będą używane w Przed wstawką spust. Jednym z głównych celów korzystania z spustu jest sprawdzanie poprawności danych. Poniższa funkcja sprawdzi, czy poszczególne pola są puste, czy nie. Jeśli którekolwiek z wartości pola pozostanie puste, zostanie podniesiony konkretny komunikat o błędzie. Kolejna walidacja zostanie sprawdzona pod kątem nazwa pole, a komunikat o błędzie zostanie podniesiony, jeśli długość tego pola jest mniejsza niż 5. Następna instrukcja warunkowa służy do połączenia wartości ciągu „+88” z contact_no Jeśli długość contact_no pole jest 11.
Utwórz lub zastąp funkcję przed_insert ()Następujące dane wyjściowe pojawi się, jeśli funkcja zostanie utworzona pomyślnie w Postgres Baza danych.
Uruchom następującą instrukcję SQL, aby utworzyć wyzwalacz nazwany Check_Before_insert które wykonają przed_insert () funkcja przed wstawieniem nowego rekordu do nauczyciele tabela.
Utwórz wyzwalacz check_before_insertPojawi się następujące dane wyjściowe, jeśli utworz się spust pomyślnie.
Uruchom następującą instrukcję Wstaw, która zawiera wszystkie prawidłowe dane.
Wstaw do nauczycieli (nazwa, adres, kontakt_no)Następujące dane wyjściowe pojawią się, jeśli nowy rekord zostanie pomyślnie wstawiony.
Uruchom następującą instrukcję Wstaw, która zawiera nieprawidłowe dane dla pola nazwy.
Wstaw do nauczycieli (nazwa, adres, kontakt_no)Dla nieprawidłowej wartości nazwy pojawi się następujący komunikat o błędzie.
Uruchom następującą instrukcję wstawu, która zawiera pustą wartość dla adres I contact_no pola, a pusta wartość dla tych pól jest nieprawidłowa.
Wstaw do nauczycieli (nazwa, adres, kontakt_no)Dla pustych wartości pojawi się następujący komunikat o błędzie.
Uruchom następującą instrukcję SELECT, aby sprawdzić, które rekordy są wstawiane po użyciu spustu przed insert.
Wybierz * od nauczycieli;Poniższe wyjście pokazuje, że tylko jeden rekord jest wstawiany po użyciu spustu.
Przykład-2: Utwórz po usunięciu wyzwalacza
Po usunięciu dowolnego rekordu z określonej tabeli. Uruchom następującą instrukcję SQL, aby utworzyć funkcję o nazwie after_delete () które będą używane w Po usunięciu wyzwala się usuwanie powiązanych wierszy z kursy Tabela, gdy rekord zostanie usunięty z nauczyciele' tabela. Tutaj stary.ID został użyty do śledzenia usuniętego ID z nauczyciele' tabela.
Utwórz funkcję after_delete ()Następujące dane wyjściowe pojawi się, jeśli funkcja zostanie utworzona pomyślnie w Postgres Baza danych.
Uruchom następującą instrukcję SQL, aby utworzyć wyzwalacz nazwany delete_teacher które wykonają after_delete () funkcja po usunięciu rekordu z nauczyciele' Tabela, która usunie rekordy z kursy stół, gdzie Nauczyciela_id Wartość pasuje do usuniętego ID wartość nauczyciele' tabela.
Utwórz wyzwalacz delete_teacherPojawi się następujące dane wyjściowe, jeśli utworz się spust pomyślnie.
Uruchom następujące oświadczenie Usuń, które usunie rekord ze stolika nauczycieli, w którym ID Wartość to 1. delete_teacher spust zostanie zwolniony, jeśli jakikolwiek rekord zostanie usunięty z nauczyciele' tabela.
Usuń od nauczycieli, gdzie id = 1;Poniższe dane wyjściowe pokazuje, że jeden rekord został usunięty z tabeli nauczycieli. Więc delete_teacher spust zostanie zwolniony i usunie wszystkie zapisy z zawierającej tabeli kursów 1 w Nauczyciela_id pole.
Teraz uruchom następujące polecenia Wybierz, aby sprawdzić, które rekordy są usuwane z nauczyciele I kursy tabele.
Wybierz * od nauczycieli;Wyjście pokazuje, że jeden rekord został usunięty z tabeli nauczycieli, a dwie rekordy zostały usunięte z tabeli kursów za pomocą spustu.
Przykład-3: Utwórz zamiast uruchomienia aktualizacji
Spust zamiast aktualizacji można zastosować tylko w widokach tabeli. Musisz więc utworzyć widok tabeli i funkcję, aby przetestować użycie tego typu spustu. Uruchom następującą instrukcję SQL, aby utworzyć funkcję o nazwie insert_course () które zaktualizują wartości nauczyciele i kursy Tabela po włożeniu nowego rekordu do kursy tabela. Celem tej funkcji jest przypisanie nauczyciela do nowego kursu, jeśli nauczyciel jest dostępny.
Utwórz lub zastąp funkcję insert_course ()Następujące dane wyjściowe pojawi się, jeśli funkcja zostanie utworzona pomyślnie w Postgres Baza danych.
Uruchom następujące polecenie SQL, aby utworzyć widok tabeli kursów.
Utwórz wyświetlanie kursów_Następujące dane wyjściowe pojawią się, jeśli widok zostanie utworzony pomyślnie.
Teraz uruchom następującą instrukcję SQL, aby utworzyć instread of Insert Trigger Uaktualnij dane które zostaną zwolnione, gdy nowy rekord zostanie wstawiony za pomocą create_view pogląd.
Utwórz Trigger Update_DataPojawi się następujące dane wyjściowe, jeśli utworz się spust pomyślnie.
Uruchom następujące oświadczenie Wstaw, aby wstawić nowy rekord do tabeli kursów za pomocą kurses_view pogląd.
Wstaw do kursów_wórz (nazwa, credit_hour)Następujące dane wyjściowe pojawią się, jeśli dane zostaną pomyślnie wstawiane za pomocą View.
Teraz uruchom poniższe wyciągi, aby sprawdzić, w jaki sposób kursy i tabele nauczycieli zostały zmodyfikowane po włożeniu nowego rekordu do tabeli kursów za pomocą View.
Wybierz * od nauczycieli;Poniższe dane wyjściowe pokazuje, że nowy rekord został włożony do tabeli kursów i dostępnego pola nauczyciele' Tabela została zaktualizowana z „t” do „f”, gdzie wartość identyfikatora wynosi 3, a ta wartość identyfikatora została zaktualizowana w kursy Tabela, aby przypisać tego nauczyciela do nowo wstawionego kursu.
Wniosek
Wiele zadań bazy danych można wykonać automatycznie za pomocą wyzwalacza w bazie danych PostgreSQL. Każdy spust jest wykonywany za pomocą konkretnej funkcji. W tym samouczku wyjaśniono wiele celów używania wyzwalaczy, tworząc wiele wyzwalaczy z funkcją. Utworzono tutaj trzy różne typy wyzwalaczy, które pomogą nowym użytkownikom PostgreSQL w poznaniu sposobu tworzenia i używania wyzwalaczy w bazie danych PostgreSQL.