Creëer en verwijder triggers in MySQL

Trigger-programmering in MySQL


Triggers of vaak opgeroepen "triggers" programmeren Ze zijn een type object dat in databases wordt gevonden. Wanneer een bepaalde gebeurtenis of bewerking wordt uitgevoerd in genoemde database, voert onze trigger automatisch een actie uit waarvoor we deze eerder hebben geprogrammeerd.

De triggers ze worden automatisch geactiveerd wanneer de INSERT-, DELETE- of UPDATE-bewerkingen worden uitgevoerd, respectievelijk invoegen, verwijderen of bijwerken. Bij het uitvoeren van een van deze acties voeren onze triggers een instructie of instructieblok uit waarvoor ze eerder zijn geprogrammeerd.

De structuur van een trigger in MySQL is de volgende:

VERGROTEN

 [DEFINER = {gebruiker | CURRENT_USER}]
Dit deel van de code vertelt de databasemanager welke gebruiker privileges heeft om onze triggers te kunnen aanroepen wanneer er DML-gebeurtenissen plaatsvinden. De standaardwaarde is CURRENT_USER.

Om de naam van onze trigger te kiezen, is er een zeer goed criterium om te volgen, namelijk: Voer eerst de naam van de tabel in, dan de initiaal van de DML-bewerking (I voor Insert, D voor Delete of U voor Update) en dan de initiaal vanaf het moment van uitvoering (ofwel A voor na of B voor voor).

 VOOR | DESPUES DE
Het geeft alleen het moment aan waarop onze trigger wordt uitgevoerd, dat wil zeggen of de trigger wordt geactiveerd vóór de DML-gebeurtenis (voor) of na (na).
 INSERT | VERWIJDEREN | BIJWERKEN
Het vertelt ons wat de zin zal zijn die we zullen gebruiken om onze trigger te activeren, Invoegen om gegevens in te voeren, Verwijderen om het te verwijderen of Bijwerken om het te wijzigen.
 ON tabelnaam
Het geeft de tabel aan die is gekoppeld aan onze trigger.
 VOOR ELKE RIJ
Het vertelt ons alleen dat de trigger wordt uitgevoerd voor elke rij van onze tabel die eerder is gedefinieerd in de AAN.

De laatste sql-instructie of het blok met instructies zal de zin of zinnen zijn die onze trigger zal uitvoeren wanneer deze in actie komt.

Praktijkvoorbeeld triggeren


Nu zullen we een praktisch voorbeeld zien van hoe je een trigger programmeert om buskaartjes te verkopen voor een bepaalde route terwijl er vrije zitplaatsen zijn.
We kunnen alle software gebruiken die triggers en opgeslagen processen accepteert.

1e Wij maken een database aan:

2e op rij we maken twee tabellen in onze database. Een daarvan is waar we de verkochte tickets opslaan en de andere is gemaakt zodat we kunnen weten hoeveel tickets er beschikbaar zijn voor de betreffende reis.

Hier is de tabel met informatie over het aantal verkochte tickets:

Vervolgens maken we de tabel waarin we de informatie opslaan over het aantal beschikbare tickets voor elke specifieke reis:

3e nu wij maken de tafel om de verschillende reizen op te slaan:

4e Na het maken van de database en de tabellen gaan we de SQL-query van de trigger maken, maar daarvoor moeten we weten wat de NIEUWE en OUDE ID's in de triggers.

Om ervoor te zorgen dat onze trigger gerelateerd is aan een of meer specifieke kolommen van de tabel, moeten we de hierboven genoemde identifiers NIEUW EN OUD gebruiken.
OUD: geeft de oude waarde van de kolom aan
NIEUWE: de nieuwe waarde die het zou kunnen aannemen.
Als voorbeeld: OUDE.idtrip of NIEUWE.idtrip.

Met de INSERT-instructie We kunnen alleen de NEW identifier gebruiken omdat met INSERT de functie die wordt gegenereerd is om nieuwe waarden in de kolom of kolommen te introduceren.
Als we de gebruiken DELETE-instructie in dit geval moeten we de OUDE identifier gebruiken omdat we met DELETE waarden verwijderen die al eerder bestonden.
Aan de andere kant, als we de gebruiken UPDATE-instructie We kunnen OUD en NIEUW gebruiken, omdat we kunnen verwijzen naar oude of nieuwe waarden, omdat we records zullen wijzigen die al bestonden voor andere waarden.

Nu we de id's begrijpen, ziet de sql-instructie er als volgt uit:

Als we de sql-instructie uitvoeren in een programma dat dit ondersteunt, zouden we dat inderdaad zien de trigger is gemaakt.

Om te zien hoe het werkt, introduceren we enkele logische waarden voor een busreis, bijvoorbeeld:

Hier heb ik in de reis met identifier nummer 1 ingevuld dat er 45 stoelen beschikbaar zijn.

Hierna verkopen wij een kaartje, bijvoorbeeld het kaartje dat hoort bij stoel 14:

Als we bij het maken van deze query naar het veld current_availability gaan, zullen we zien dat 45 is veranderd in 44, sinds de trigger voor 'update_availability' is geactiveerd.

De voordelen van het gebruik van triggers is dat verschillende gebruiksscenario's kunnen worden geprogrammeerd en dat de integriteit van de database behouden blijft, dat wil zeggen, het geeft ons de mogelijkheid om routines te creëren die bepaalde acties automatisch uitvoeren zonder dat we dit handmatig hoeven te doen. Het zou zeer geschikt zijn voor de validatie van elk type informatie of om enige follow-up van bewegingen van de database te doen.

Een ander zeer interessant voorbeeld, zoals ik zojuist in de validaties heb genoemd, is het bepalen van een meerderjarigheid voordat een zin wordt gemaakt, bijvoorbeeld:

Na het zien van de voorbeelden van het maken van triggers, moeten we weten hoe we toegang kunnen krijgen tot de informatie van de trigger. Hiervoor gebruiken we de zinnen:

Om de triggers in onze database te zien:

 TOON TRIGGERS
Aan de andere kant, als we de informatie willen zien van de trigger die op dit moment is gemaakt:
 TOON MAAK TRIGGER student_BU_trigger
Eindelijk, nadat we hebben gezien hoe triggers worden gemaakt en weergegeven, gaan we kijken wat de verklaring is die wordt gebruikt om een ​​trigger te elimineren die we in onze database hebben.
Om dit te doen, hoeven we alleen de typische delete-opdracht te gebruiken: afzetten.
 DROP TRIGGER [IF_EXISTS] triggernaam

Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave