Wyzwalacz to procedura, która jest automatycznie zwolniona, gdy jakakolwiek modyfikacja jest wykonywana w tabeli bazy danych. Nie ma opcji ręcznego wywoływania lub wykonania żadnego wyzwalacza. Głównym celem stosowania wyzwalaczy jest utrzymanie integralności bazy danych i można ją używać z ograniczeniami integralności referencyjnej, które wymuszają reguły integralności. W DBMS, gdy wystąpi dowolne zdarzenie wkładki, aktualizacji i usuwania, wówczas procedura wyzwalająca powiązana z wytworzoną tabelą zostanie wykonana automatycznie i wykonuje wymagane działania. Baza danych jest obsługiwana przez różne typy wyzwalaczy. Wyzwalacze są głównie podzielone na dwa sposoby. Jeden jest przed spustem, a drugi po wyzwoleniu. Przed wywołaniem wyzwalaczy przed wykonaniem jakiegokolwiek wydarzenia w tabeli i po wywołaniu wyzwalaczy po wykonaniu dowolnego zdarzenia w tabeli. Jak instalujesz Mariadb i stosować różne typy wyzwalaczy na serwerze bazy danych Mariadb na Ubuntu, jest pokazany w tym samouczku.
Instalacja Mariadb:
Uruchom poniższe polecenie, aby zaktualizować system i zainstalować serwer MariaDB i klient.
# sudo apt-get aktualizacja && sudo apt-get instaluj mariadb-server mariadb-client
Typ 'y ' i naciśnij Enter, aby zakończyć proces instalacji.
Uruchom następujące polecenie, aby uruchomić serwer MARIADB.
# sudo systemctl start mariadb
Sprawdź, czy serwer działa poprawnie lub nie. Wyjście następującego polecenia wyświetli status szczegółowych informacji serwera. Wyjście wskazuje, że Mariadb 10.1.30 Verion działa.
# sudo systemCtl status mariadb
Uruchom następujące polecenie, jeśli chcesz zatrzymać serwer. Nie uruchamiaj teraz tego polecenia.
# sudo systemCtl Stop Mariadb
Skonfiguruj bazę danych i tabele
Musisz utworzyć bazę danych i dwa lub więcej tabel, aby sprawdzić, jak działają wyzwalacze. Przede wszystkim uruchom klienta MySQL, aby skonfigurować bazę danych. Poprosi o hasło root, aby uzyskać dostęp do serwera bazy danych.
# sudo mysql -u root
Utwórz nazwaną bazę danych sklep.
> Utwórz sklep z bazami danych;Wybierz tę nową bazę danych:
> Użyj sklepu;Utwórz trzy tabele w sklep baza danych do zastosowania działań wyzwalających na nich. Tutaj, produkty, stock i stock_add Tabele są tworzone.
Utwórz produkty stołoweTeraz wstaw dane w tych trzech tabelach.
Utwórz za spustem
Możesz utworzyć po wyzwalaniu, aby wykonać dowolne działanie automatycznie po włożeniu lub aktualizacji lub usunięciu rekordów określonej tabeli. Tutaj, produkty I dyby Tabele są wybierane do utworzenia po usunięciu wyzwalacza. Dane ze stocka zależy od danych z tabeli produktów. Więc jeśli jakikolwiek rekord zostanie usunięty z tabeli produktów, należy usunąć powiązane zapisy stockowe. Utwórz następującą procedurę wyzwalacza, aby automatycznie usunąć dowolny powiązany rekord z tabeli magazynów, gdy jakikolwiek rekord zostanie usunięty z tabeli produktów. W tym spustu usunięty identyfikator jest rozpoznawany przez stary.ID.
Delimiter //
Po utworzeniu spustu dla tabeli produktów. Teraz musisz przetestować, że wyzwalacz działa poprawnie lub nie. Uruchom następujące zapytanie, aby usunąć rekord z produktów, gdzie ID Jest 101 i sprawdź dane zarówno tabel produktów, jak i zapasów. Po wykonaniu zapytania przekonasz się, że powiązany rekord magazynu jest usuwany przez wyzwalacz. Brak rekordu wartości identyfikacyjnej, 101, zostanie znaleziony w obu tabelach.
Utwórz przed wyzwalaczami
Przed użyciem wyzwalacza do podjęcia jakichkolwiek działań przed wstawieniem lub aktualizacją lub usunięciem dowolnego lub więcej rekordów z określonej tabeli. Tutaj, dyby I stocks_add Tabela służy do tworzenia przed wyzwalaczem. Wartość Tabeli Current_stock Stocks zależy od wartości ilościowej tabeli Stocks_Add. Jeśli zaktualizujesz jakąkolwiek wartość ilościową tabeli Stocks_ADD, należy aktualizować Current_stock tabeli Stocks. Więc jeśli jakakolwiek istniejąca wartość ilościowa tabeli Stocks_Add zmniejszy się, wówczas prąd_stock zapasów zostanie zmniejszony, a jeśli wartość ilościowa wzrośnie, wówczas zostanie zwiększony. Utwórz przed aktualizacją Trigger dla tabeli Stocks_Add. W tym spustu zmieniona wartość ilościowa jest obliczana przez odjęcie starej ilości od nowej ilości.
Delimiter //Przed aktualizacją sprawdź bieżące wartości zarówno zapasów, jak i tabel Stocks_ADD.
> Wybierz * z zapasów;
Załóżmy, że musisz zaktualizować wartość ilościową tabeli stocks_add, gdzie ID produktu Jest 103 I Wprowadź dane Jest 2018-01-01 który jest 30 Teraz. Jeśli chcesz zaktualizować wartość według 75 Następnie uruchom następujące zapytanie aktualizacji i ponownie sprawdź oba tabele. Zwiększona ilość wynosi 75-30 = 45. Tak więc po aktualizacji wyzwalacz zostanie zwolniony, a Tabela Current_stock of Stocks zostanie ustawiona jako 300+45 = 345.
Zastosowanie dwóch rodzajów wyzwalaczy pokazano w tym samouczku. W podobny sposób możesz tworzyć inne rodzaje przed i po uruchomieniu tabel bazy danych w oparciu o Twoje wymagania.