Język SQL: Instrukcja Case
7 czerwca, 2023Przypadki (z ang. Case) są alternatywą wobec instrukcji warunkowej. W standardowych językach programowa takich jak C++, Javascript czy PHP łączone...
Czytaj dalejWyzwalacz (ang. Trigger) to pewien zestaw poleceń, wykonywanych automatycznie. Wywoływany jest wtedy, gdy dojdzie do wykonania danej operacji na bazie danych, lub nastąpi określone zdarzenie. Pozwala więc na znaczną automatyzację powtarzalnych działań. Z tego względu jest bardzo przydatnym narzędziem. Można znaleźć dla niego wiele zastosować, jednak pierwszym sposobem jaki przychodzi na myśl jest użycie go jako tzw. loggera, czy systemu zapisującego informację o zmianach w bazie danych.
Warto jednak pamiętać, że nadmierna ilość wyzwalaczy może negatywnie wpłynąć na wydajność bazy danych. Składnia wygląda następująco:
CREATE TRIGGER nazwa_triggera [ BEFORE / AFTER ] [ INSERT / UPDATE / DELETE ] ON nazwa_tabeli [FOR EACH ROW] BEGIN Kod akcji triggera END;
Jak wspomniałem we wstępie najbardziej intuicyjnym użyciem triggera jest tworzenie logów. Napisz więc taki skrypt. Zapisze on informacje takie jak: jaką informację wykonano, i który rekord został nią dotknięty.
DELIMITER // CREATE TRIGGER resource_logger AFTER UPDATE ON resources FOR EACH ROW BEGIN INSERT INTO `logs`(`log_id`, `type`, `resource_id`) VALUES( null, "UPDATE", OLD.id); END// DELIMITER ;
Tak skonstruowany wyzwalacz zapisze interesujące nas informacje do tabeli logs
. Zrobi to za każdym razem gdy wywołamy kwerendę typu UPDATE.
Trigger’ów można też użyć do kopiowania zmienianych (w tym i usuwanych) obiektów bazodanowych. Przykładem może być stworzenie kopii usuwanego obiektu. Użyjemy do tego poza wyzwalaczem, także słowa kluczowego OLD, które zawiera wszystkie informacje dotyczące stanu początkowego zmienianego obiektu.
DELIMITER // CREATE TRIGGER resource_backup BEFORE DELETE ON resources FOR EACH ROW BEGIN INSERT INTO `backup`(`backup_id`,`resource`, `description`) VALUES(null,OLD.`resource`,OLD.`description`); END// DELIMITER ;
Oczywiście, wyzwalacze można wykorzystać na wiele innych sposobów. Nie należy jednak ich nadużywać. Spowoduje to przeciążenie bazy danych, znaczne osłabienie jej wydajności.
Przypadki (z ang. Case) są alternatywą wobec instrukcji warunkowej. W standardowych językach programowa takich jak C++, Javascript czy PHP łączone...
Czytaj dalejInstrukcja warunkowa jest elementem języka SQL, który pozwala na automatyczne sterowanie wykonywaniem się kwerend. Szczególnie dobrze sprawdzi się oczywiście w...
Czytaj dalejChoć na pierwszy rzut oka SQL niewiele ma wspólnego z typowymi językami programowania, znajdziemy w nim elementy z nich zaczerpnięte....
Czytaj dalej