Udløser programmering i MySQL
Udløser eller kaldes almindeligvis ind programmering af "triggere" De er en type objekt, der findes i databaser. Når en bestemt hændelse eller handling udføres i databasen, udfører vores trigger automatisk en handling, som vi tidligere har programmeret den til.
Det udløser de aktiveres automatisk, når der udføres operationer INSERT, DELETE eller UPDATE, som henholdsvis indsættes, slettes eller opdateres. Når vi udfører nogen af disse handlinger, udfører vores udløsere en instruktion eller blok af instruktioner, som de tidligere er programmeret til.
Det struktur af en trigger i MySQL er det næste:
FORSTØRRE
[DEFINER = {bruger | CURRENT_USER}]Denne del af koden fortæller databasesystemet, hvilken bruger der har privilegier til at kunne kalde vores udløsere, når der kommer DML -begivenheder. Standardværdien er CURRENT_USER.
For at vælge navnet på vores trigger er der et meget godt kriterium at følge, som er: Først skal du sætte bordets navn, derefter initialen for DML -operationen (I for Insert, D for Delete eller U for Update) og derefter initial fra udførelsesøjeblikket (enten A for efter eller B for før).
FØR | DESPUES DEDet angiver kun det øjeblik, hvor vores udløser vil blive udført, det vil sige, hvis udløseren udløses før DML -hændelsen (før) eller efter (efter).
INDSÆT | SLET | OPDATERDet fortæller os, hvad der vil være den sætning, som vi vil bruge til at udløse vores udløser, Indsæt for at indtaste data, Slet for at slette dem eller Opdater for at ændre dem.
ON bordnavnDet angiver tabellen, der er knyttet til vores udløser.
FOR HVER RÆKKEDet fortæller os kun, at udløseren vil blive udført for hver række i vores tabel, der tidligere var defineret i ON.
Det sidste sql -erklæring eller blokken af instruktioner vil være den eller de sætninger, som vores trigger vil udføre, når den træder i kraft.
Udløser praktisk eksempel
Nu vil vi se et praktisk eksempel på, hvordan man programmerer en trigger til at sælge busbilletter til en bestemt rute, mens der er ledige pladser.
Vi kan bruge enhver software, der accepterer udløsere og lagrede processer.
1. Vi opretter en database:
2. i træk vi opretter to tabeller i vores database. En af dem er, hvor vi vil gemme de solgte billetter, og den anden er oprettet, så vi kan vide, hvor mange billetter der er tilgængelige til den givne rejse.
Her er tabellen, der indeholder oplysninger om antallet af solgte billetter:
Dernæst opretter vi tabellen, hvor vi gemmer oplysningerne om antallet af tilgængelige billetter til hver specifik rejse:
3. nu vi laver bordet at gemme de forskellige ture:
4. Efter oprettelse af databasen og tabellerne skal vi oprette udløserens SQL -forespørgsel, men før dette skal vi vide, hvad der er NYE og GAMLE identifikatorer i udløserne.
For at vores udløser skal være relateret til en eller flere specifikke kolonner i tabellen, skal vi bruge de ovennævnte identifikatorer NYE OG GAMLE.
GAMMEL: angiver den gamle værdi af kolonnen
NY: den nye værdi, den kan tage.
Som et eksempel: OLD.idtrip eller NEW.idtrip.
Med INSERT -erklæring Vi kan kun bruge den NYE identifikator, fordi den funktion, der genereres med INSERT, er at introducere nye værdier til kolonnen eller kolonnerne.
Hvis vi bruger SLET erklæring i dette tilfælde skal vi bruge den gamle identifikator, fordi vi med DELETE sletter værdier, der allerede eksisterede tidligere.
På den anden side, hvis vi bruger UPDATE erklæring Vi kan bruge gammelt og nyt, da vi kan henvise til gamle eller nye værdier, da vi vil ændre poster, der allerede eksisterede for andre værdier.
Nu hvor vi forstår identifikatorerne, ville sql -sætningen se sådan ud:
Hvis vi udfører sql -sætningen i et program, der understøtter det, ville vi virkelig se det udløseren er blevet oprettet.
For at se, hvordan det fungerer, introducerer vi nogle logiske værdier for en bustur, for eksempel:
Her har jeg i turen med identifikationsnummer 1 indtastet, at der er 45 pladser til rådighed.
Herefter sælger vi en billet, for eksempel den billet, der svarer til sæde 14:
Når vi foretager denne forespørgsel, hvis vi går til feltet current_availability, vil vi se, at 45 er ændret til 44, siden udløseren 'update_availability' blev aktiveret.
Det fordele ved at bruge udløsere er, at forskellige use cases kan programmeres, og at databasens integritet opretholdes, det vil sige, det giver os mulighed for at oprette rutiner, der udfører bestemte handlinger automatisk uden at skulle gøre det manuelt. Det ville være meget gyldigt til validering af enhver form for information eller til at følge op på databasens bevægelser.
Et andet meget interessant eksempel, som jeg lige har nævnt i valideringerne, er at bestemme en myndighedsalder, før der afsættes en sætning, for eksempel:
Efter at have set eksemplerne på at oprette udløsere, skal vi vide, hvordan vi får adgang til oplysninger om udløseren. Til dette vil vi bruge sætningerne:
For at se udløserne i vores database:
VIS TRIGGERSPå den anden side, hvis vi vil se oplysningerne om udløseren, der er blevet oprettet i øjeblikket:
VIS Opret TRIGGER student_BU_triggerEndelig, efter at have set hvordan triggere oprettes og vises, vil vi se, hvad er udsagnet, der bruges til at fjerne en trigger, som vi har i vores database.
For at gøre dette skal vi bare bruge den typiske slettekommando: dråbe.
DROP TRIGGER [IF_EXISTS] trigger_nameKan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt