triggers pl sql tutorial with example programs
Leer alles over Triggers in PL SQL, hun typen, gebruik en voordelen:
In de PL SQL-transacties tutorial van de PL / SQL-reeks hebben we geleerd over COMMIT-, ROLLBACK- en SAVEPOINTS-statements.
In dit artikel zullen we triggers in PL SQL en hun voordelen, typen en gebruik onderzoeken. We zullen bespreken hoe u PL / SQL-triggers kunt maken, activeren, inschakelen en uitschakelen met behulp van voorbeeldprogramma's.
Laten we beginnen met de discussie !!
Wat je leert:
Triggers in PL / SQL
Een opgeslagen programma dat standaard of door bepaalde gebeurtenissen wordt geactiveerd, wordt een trigger genoemd.
Een trigger wordt uitgevoerd vanwege de volgende omstandigheden die hieronder worden vermeld:
- Door een DDL-instructie (Data Definition Language) zoals DROP, ALTER of CREATE.
- Door een DML-instructie (Data Manipulation Language) zoals UPDATE, INSERT of DELETE.
- Door een database-actie zoals SHUTDOWN, STARTUP, LOGOFF en LOGON.
Een trigger kan worden ingesteld op een schema, view of database waaraan een gebeurtenis is gekoppeld.
Voordelen van triggers
Deze staan hieronder vermeld:
- Mogelijkheid om referentiële integriteit af te dwingen.
- Mogelijkheid tot monitoring.
- Mogelijkheid om gegevens te loggen en vast te houden bij het openen van tabellen.
- Mogelijkheid om transacties te stoppen die niet geldig zijn.
- Mogelijkheid om beveiligingsfuncties af te dwingen.
- Mogelijkheid om standaard afgeleide kolomwaarden te produceren.
Gebruik van triggers
Deze staan hieronder vermeld:
- Voorkomt ongepaste transacties.
- Verzamelt informatie over tafelgebruik.
- Bewaak kritieke informatie.
Soorten triggers in PL / SQL
De triggers kunnen worden gecategoriseerd op basis van parameters. Typen triggers worden hieronder vermeld:
# 1) Categorisatie op triggerniveau.
- RIJ Level trigger: Het wordt uitgevoerd voor elk record dat is bijgewerkt door een DML-instructie.
- STATEMENT Level trigger: Het wordt slechts één keer uitgevoerd door de gebeurtenisinstructie.
# 2) Categorisatie op de trigger-timing.
- VOOR trigger: Het wordt uitgevoerd voorafgaand aan de specifieke gebeurtenis die heeft plaatsgevonden.
- NA trigger: Het wordt uitgevoerd na de specifieke gebeurtenis die heeft plaatsgevonden.
- IN PLAATS VAN trigger: Het is een speciaal type trigger en wordt uitgevoerd voor elk record dat is bijgewerkt door een DML-instructie.
# 3) Categorisering van de triggergebeurtenis.
- DML-trigger: Het wordt uitgevoerd als een DML-gebeurtenis zoals een UPDATE, INSERT of DELETE wordt uitgevoerd.
- DDL-trigger: Het wordt uitgevoerd als een DDL-gebeurtenis zoals een DROP, ALTER of CREATE wordt uitgevoerd.
- DATABASE-trigger: Het wordt uitgevoerd als een database-gebeurtenis zoals SHUTDOWN, STARTUP, LOGOFF en LOGON heeft plaatsgevonden.
Creëer triggers
Syntaxis voor het maken van een trigger:
Hier,
- MAAK (OF VERVANG) TRIGGER trigger_n - Dit is voor het maken, vervangen of bijwerken van een trigger met de naam trigger_n.
- NA - Dit is om het tijdstip te bepalen waarop de trigger zal worden geactiveerd. De INSTEAD OF is voor het creëren van een trigger die een weergave heeft.
- VERWIJDEREN - Dit is voor het uitvoeren van de DML-acties.
- (OF column_n) - Dit is voor het vermelden van de kolomnaam die moet worden gewijzigd.
- (ON table_n) - Dit is voor het vermelden van de tabelnaam die aan de trigger is gekoppeld.
- (VERWIJZEND OUD ZOALS NIEUW ALS n) - Dit is om te verwijzen naar de oude en nieuwe waarden door de DML-instructie zoals UPDATE, INSERT of DELETE.
- (VOOR ELKE RIJ) - Dit bepaalt een trigger op rijniveau, d.w.z. de trigger wordt geactiveerd voor elke rij die wordt gewijzigd, anders wordt de trigger slechts één keer geactiveerd wanneer de SQL-instructie wordt uitgevoerd, wat bekend staat als trigger op tabelniveau.
- WANNEER (conditie) - Dit geeft een voorwaarde voor rijen waarvoor de trigger zou worden uitgevoerd. Dit is alleen van toepassing op triggers op rijniveau.
Laten we opnieuw een tabel bekijken die een naam heeft LEERLING
Laten we nu een trigger op rijniveau maken voor de STUDENT-tabel die zou worden uitgevoerd door de DML-instructie zoals UPDATE, INSERT of DELETE op die tabel. De trigger berekent en toont het leeftijdsverschil tussen huidige en vorige waarden.
Code-implementatie voor het maken van triggers:
Uitvoer van de bovenstaande code:
De bovenstaande code heeft een aantal belangrijke kenmerken. Ze zijn hieronder opgesomd:
- Voor een trigger op tabelniveau zijn OUDE en NIEUWE adressen niet beschikbaar. We kunnen deze referenties gebruiken voor triggers op recordniveau.
- Als we een andere query in dezelfde trigger willen toepassen, moeten we het trefwoord AFTER gebruiken als een trigger die een tabel pas opnieuw kan wijzigen nadat de vorige wijzigingen correct zijn toegepast.
- De hierboven besproken trigger wordt uitgevoerd voorafgaand aan een DELETE-, UPDATE- of INSERT-actie op de tafel. We kunnen echter ook een trigger ontwerpen die ook op een enkele operatie wordt geactiveerd ( bijvoorbeeld, NA INSERT die de trigger zal uitvoeren telkens wanneer een record wordt ingevoegd met behulp van de INSERT-bewerking op de tafel).
Triggers in PL SQL
Om de bovenstaande trigger te activeren, moeten we een DML-bewerking uitvoeren zoals DELETE, INSERT of UPDATE op de tafel. Laten we opnieuw enkele waarden in de studententabel invoegen met behulp van de onderstaande vraag:
Zodra de INSERT-bewerking is voltooid in de Student-tabel, wordt de trigger age_changes wordt uitgevoerd.
De output van de querycode:
Aangezien er een nieuw record is aangemaakt en de vorige leeftijd niet beschikbaar is, wordt de vorige leeftijd en Leeftijdsverschil berekening komt als nul in de bovenstaande uitvoer.
Nu, laten we wijzig een record met de UPDATE-instructie met behulp van de onderstaande vraag:
Zodra de UPDATE-bewerking is voltooid in de Student-tabel, wordt de trigger age_changes wordt uitgevoerd.
De output van de bovenstaande query:
NIEUWE en OUDE clausule
Een nieuwe clausule wordt gebruikt om de nieuwe waarde op te slaan voor de kolommen van de tabel voor de uitvoering van de trigger. Het wordt gebruikt in triggers op recordniveau. Een oude clausule wordt gebruikt om de oude waarde op te slaan voor de kolommen van de tabel voor de uitvoering van de trigger. Het wordt ook gebruikt bij triggers op recordniveau.
Dus de nieuwe en oude clausule wordt gebruikt om de nieuwe en oude waarden vast te houden en ernaar te verwijzen binnen een trigger-body.
Samengestelde trigger
Een samengestelde trigger wordt gebruikt om de bewerkingen voor alle timingpunten binnen het triggerlichaam te definiëren. Het geeft de mogelijkheid om alle acties op verschillende tijdstippen samen te voegen binnen één trigger-body.
De verschillende tijdstippen zijn hieronder opgesomd:
- NA VERKLARING niveau
- VOOR RIJ niveau
- NA RIJ niveau
- VOOR VERKLARING niveau
Schakel Trigger uit en in
We kunnen een trigger in- en uitschakelen met behulp van een DDL-instructie ALTER.
Syntaxis:
Hier is trigger_n de naam van de trigger die we willen in- of uitschakelen.
Laten we nu de trigger uitschakelen met behulp van de onderstaande vraag:
De output van de querycode:
Laten we nu dezelfde trigger inschakelen met behulp van de onderstaande query:
De output van de querycode:
Veelgestelde vragen en antwoorden
V # 1) Hoeveel soorten triggers bestaan er in PL SQL?
Antwoord: Er zijn twee soorten triggers in PL / SQL. Dit zijn trigger op rijniveau en trigger op instructie-niveau.
Q # 2) Welk type trigger gebruikt de oude en nieuwe kwalificaties?
dubbel gekoppelde lijst c ++ tutorial
Antwoord: De oude en nieuwe kwalificaties kunnen alleen worden gebruikt met triggers op rijniveau. Ze zijn niet compatibel met triggers op instructie-niveau.
V # 3) Wat is het verschil tussen trigger nieuw en trigger oud?
Antwoord: Een nieuwe trigger geeft een lijst met nieuwe versies van de recordobjecten. Een oude trigger geeft een lijst met oude versies van de recordobjecten.
Vraag 4) Wat is een trigger op rijniveau in PL SQL?
Antwoord: Een trigger op rijniveau wordt slechts één keer geactiveerd voor een rij vanwege een gebeurtenis. Bijvoorbeeld, als verwijdering wordt beschouwd als een triggergebeurtenis voor een tabel, heeft een delete-instructie invloed op twee rijen, dan zal de trigger twee keer worden geactiveerd.
V # 5) Wat is een trigger? Leg uit met een voorbeeld.
Antwoord: Een trigger is een opgeslagen procedure die standaard wordt geactiveerd als zich een incident voordoet in de database. Bijvoorbeeld, als een rij in een tabel wordt ingevoegd of als we enkele waarden in de tabel wijzigen.
V # 6) Wat zijn de volgende triggers?
Antwoord: De na-triggers worden geactiveerd na de uitvoering van een DML-instructie, maar voorafgaand aan de commit naar de database. Het is ook in staat om zijn actie terug te draaien.
Gevolgtrekking
In deze tutorial hebben we enkele basisconcepten van triggers in PL SQL besproken die essentieel zijn om ze te gebruiken tijdens het programmeren. We hebben de volgende onderwerpen behandeld:
- Triggers.
- Soorten triggers.
- Diverse bewerkingen op triggers.
<< PREV Tutorial VOLGENDE Tutorial >>