Programowanie wyzwalaczy w MySQL
Wyzwalacze lub powszechnie nazywane in programowanie "wyzwalaczy" Są rodzajem obiektów znalezionych w bazach danych. Gdy w tej bazie danych zostanie wykonane określone zdarzenie lub operacja, nasz wyzwalacz automatycznie wykonuje akcję, dla której go wcześniej zaprogramowaliśmy.
ten wyzwalacze są one aktywowane automatycznie po wykonaniu operacji INSERT, DELETE lub UPDATE, czyli odpowiednio wstawiania, usuwania lub aktualizacji. Podczas wykonywania którejkolwiek z tych akcji nasze wyzwalacze wykonują instrukcję lub blok instrukcji, dla których zostały wcześniej zaprogramowane.
ten struktura wyzwalacza w MySQL jest następny:
POWIĘKSZAĆ
[DEFINIER = {użytkownik | BIEŻĄCY_UŻYTKOWNIK}]Ta część kodu informuje menedżera bazy danych, który użytkownik ma uprawnienia, aby móc wywoływać nasze wyzwalacze, gdy mają wystąpić zdarzenia DML. Wartość domyślna to CURRENT_USER.
Aby wybrać nazwę naszego wyzwalacza, należy kierować się bardzo dobrym kryterium, które jest następujące: Najpierw należy podać nazwę tabeli, potem inicjał operacji DML (I dla Insert, D dla Delete lub U dla Update), a następnie początkowy od momentu wykonania (albo A dla po lub B dla przed).
PRZED | DESPUJE DEWskazuje tylko moment, w którym nasz wyzwalacz zostanie wykonany, to znaczy, czy wyzwalacz zostanie wyzwolony przed zdarzeniem DML (przed) lub po (po).
WSTAW | USUŃ | AKTUALIZACJAMówi nam, jakie będzie zdanie, którego użyjemy do uruchomienia naszego wyzwalacza, Wstaw, aby wprowadzić dane, Usuń, aby je usunąć lub Aktualizuj, aby je zmodyfikować.
ON nazwa stołuWskazuje tabelę powiązaną z naszym wyzwalaczem.
DLA KAŻDEGO RZĘDUMówi nam tylko, że wyzwalacz zostanie wykonany dla każdego wiersza naszej tabeli wcześniej zdefiniowanego w ON.
ten końcowe oświadczenie sql lub blok instrukcji będzie zdaniem lub zdaniami, które nasz wyzwalacz wykona, gdy wejdzie w akcję.
Praktyczny przykład wyzwalania
Teraz zobaczymy praktyczny przykład, jak zaprogramować wyzwalacz, aby sprzedawać bilety autobusowe na określoną trasę, gdy są wolne miejsca.
Możemy użyć dowolnego oprogramowania, które akceptuje wyzwalacze i przechowywane procesy.
1st Tworzymy bazę danych:
Drugie miejsce z rzędu tworzymy dwie tabele w naszej bazie danych. Jeden z nich to miejsce, w którym przechowujemy sprzedane bilety, a drugi jest tworzony tak, abyśmy mogli wiedzieć, ile biletów jest dostępnych na daną podróż.
Oto tabela, w której znajdą się informacje dotyczące liczby sprzedanych biletów:
Następnie tworzymy tabelę, w której zapisujemy informacje o liczbie biletów dostępnych na każdą konkretną podróż:
3. teraz tworzymy stół do przechowywania różnych podróży:
4. Po utworzeniu bazy danych i tabel mamy zamiar utworzyć zapytanie SQL wyzwalacza, ale przed tym musimy wiedzieć jakie są NOWE i STARE identyfikatory w wyzwalaczach.
Aby nasz wyzwalacz był powiązany z jedną lub kilkoma konkretnymi kolumnami tabeli, musimy użyć identyfikatorów wymienionych powyżej NOWY I STARY.
STARY: wskazuje starą wartość kolumny
NOWY: nową wartość, jaką może przyjąć.
Jako przykład: STARY.idtrip lub NOWY.idtrip.
Z WSTAW oświadczenie Możemy użyć tylko identyfikatora NEW, ponieważ przy pomocy INSERT generowana funkcja ma na celu wprowadzenie nowych wartości do kolumny lub kolumn.
Jeśli użyjemy USUŃ wyciąg w tym przypadku musimy użyć identyfikatora OLD, ponieważ za pomocą DELETE usuwamy wartości, które już istniały.
Z drugiej strony, jeśli użyjemy Oświadczenie UPDATE Możemy użyć STARY i NOWY, ponieważ możemy odwoływać się do starych lub nowych wartości, ponieważ zmodyfikujemy już istniejące rekordy dla innych wartości.
Teraz, gdy rozumiemy już identyfikatory, instrukcja sql wyglądałaby tak:
Jeśli wykonamy instrukcję sql w programie, który ją obsługuje, zobaczymy, że rzeczywiście wyzwalacz został utworzony.
Aby zobaczyć, jak to działa, wprowadzamy kilka wartości logicznych dla podróży autobusem, na przykład:
Tutaj wpisałem w podróż z numerem identyfikacyjnym 1, że dostępnych jest 45 miejsc.
Następnie sprzedajemy bilet, na przykład bilet odpowiadający miejscu 14:
Wykonując to zapytanie, jeśli przejdziemy do pola current_availability, zobaczymy, że 45 zmieniło się na 44, ponieważ aktywowano wyzwalacz 'update_availability'.
ten zalety korzystania z wyzwalaczy jest to, że można zaprogramować różne przypadki użycia i że zachowana jest integralność bazy danych, czyli daje nam możliwość tworzenia procedur, które automatycznie wykonują określone czynności bez konieczności wykonywania ich ręcznie. Byłoby to bardzo ważne w przypadku walidacji wszelkiego rodzaju informacji lub wykonywania pewnych działań następczych w zakresie ruchów bazy danych.
Innym bardzo ciekawym przykładem, o którym właśnie wspomniałem w walidacjach, jest określenie pełnoletności przed wydaniem zdania, na przykład:
Po obejrzeniu przykładów tworzenia wyzwalaczy musimy wiedzieć, jak uzyskać dostęp do informacji wyzwalacza. W tym celu użyjemy zdań:
Aby zobaczyć wyzwalacze w naszej bazie danych:
POKAŻ AKTYWATYZ drugiej strony, jeśli chcemy zobaczyć informacje o wyzwalaczu, który został w tej chwili utworzony:
POKAŻ CREATE TRIGGER student_BU_triggerWreszcie, po zapoznaniu się z tworzeniem i wyświetlaniem wyzwalaczy, zobaczymy, jaka instrukcja służy do wyeliminowania wyzwalacza, który mamy w naszej bazie danych.
Aby to zrobić, wystarczy użyć typowego polecenia usuwania: upuszczać.
DROP TRIGGER [IF_EXISTS] trigger_namePodobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt