Laten we wat meer verschillen bespreken tussen Trigger en Procedure met behulp van een hieronder weergegeven vergelijkingsgrafiek.
Vergelijkingstabel
Basis voor vergelijking | triggers | Procedures |
---|---|---|
basis- | Ze worden automatisch uitgevoerd bij het optreden van een gespecificeerde gebeurtenis. | Ze kunnen worden uitgevoerd wanneer dat nodig is. |
Roeping | Triggers kunnen niet binnen een procedure worden aangeroepen. | Maar je kunt een procedure binnen een trigger oproepen. |
Parameter | We kunnen parameters niet doorgeven aan triggers. | We kunnen parameters doorgeven aan procedures. |
terugkeer | Trigger geeft nooit waarde terug bij uitvoering. | Procedure kan waarde / s teruggeven bij uitvoering. |
Definitie van Trigger
De trigger is als een procedure die automatisch wordt uitgevoerd bij het optreden van een opgegeven event. Net als de procedure hoeft de trigger niet expliciet te worden aangeroepen. Triggers worden gemaakt om een taak uit te voeren als reactie op het optreden van een bepaalde gebeurtenis.
De trigger kan worden opgeroepen als reactie op de DDL- instructies (DELETE, INSERT of UPDATE) of DML- instructies (DELETE, INSERT of UPDATE) of, voor sommige databasewerkzaamheden (SERVERERROR, LOGON, LOGOFF, STARTUP of SHUTDOWN).
De trigger bestaat uit drie componenten, zoals hieronder wordt besproken:
- Gebeurtenis : gebeurtenis is het optreden van een incident dat de uitvoering van de trigger zal veroorzaken. De trigger kan worden besteld om uit te voeren VOORDAT een gebeurtenis plaatsvindt of deze kan worden besteld om te worden uitgevoerd NA de uitvoering van een gebeurtenis.
- Voorwaarde : het is een optioneel onderdeel van de trigger. Als de trigger niet wordt vermeld, wordt de trigger uitgevoerd als de opgegeven gebeurtenis plaatsvindt. Als de voorwaarde is opgegeven, controleert deze de regels om te bepalen of de trigger moet worden uitgevoerd.
- Actie : actie is een verzameling SQL-instructies die wordt uitgevoerd bij de uitvoering van de trigger.
De algemene vorm van creatie van een evenement wordt hieronder besproken:
CREËER TRIGGER VOOR / NA CONDITIONACTIE;
Hier is Conditie optioneel.
Definitie van procedures
De procedure kan worden genomen als een programmeereenheid, gemaakt om een bepaalde taak uit te voeren en wordt opgeslagen in de database. Ze worden zo nodig opgeroepen door de SQL-instructie. Procedures zijn als door de gebruiker gedefinieerde functies die worden gedefinieerd door de ontwikkelaars. Procedures kunnen worden opgeroepen met behulp van CALL of EXECUTE .
De procedures zijn handig in de volgende situaties:
- Als de procedure door een andere toepassing is vereist, kan deze op de server worden opgeslagen, zodat ze door elke toepassing kunnen worden opgeroepen. Het vermindert de inspanning van duplicatie van de procedure van de ene database naar de andere en verbetert ook de modulariteit van de software.
- Naarmate de procedure op de server wordt uitgevoerd, wordt de gegevensoverdracht beperkt en worden ook de communicatiekosten verlaagd.
- De procedures kunnen worden gebruikt om de complexe beperkingen te controleren die de kracht van trigger te boven gaan.
Laten we de algemene vorm van het maken van een procedure bespreken:
CREATE PROCEDURE () RETOUREN;
Hier zijn de parameters en de lokale declaraties optioneel. Ze worden alleen vermeld wanneer ze nodig zijn. De onderstaande verklaring beschrijft de roeping van de procedures.
CALL ();
Belangrijkste verschillen tussen trigger en procedure
- Het belangrijkste verschil tussen trigger en procedure is dat een trigger een instructie is die automatisch wordt aangeroepen wanneer zich een gebeurtenis heeft voorgedaan. Aan de andere kant wordt de procedure opgeroepen wanneer dit nodig is.
- Men kan de procedure binnen een trigger definiëren. Maar een trigger wordt nooit gedefinieerd binnen een procedure, omdat de trigger automatisch moet worden opgeroepen bij het optreden van een gebeurtenis.
- We kunnen parameters doorgeven aan procedures, maar we kunnen geen parameters doorgeven die moeten worden geactiveerd omdat deze niet door ons worden aangeroepen.
- Een procedure kan parameterwaarden of -code retourneren, maar een trigger kan dit niet.
Conclusie:
Triggers zijn nuttig, maar worden vermeden als er een alternatief voor bestaat, omdat het de complexiteit van gegevens verhoogt. Soms zijn triggers ook vervangers door een geschikte procedure.