PostgreSQL - Functies zoals triggers

Inhoudsopgave
PostgreSQL stelt ons in staat om verschillende talen te gebruiken om functies uit te voeren, deze functionaliteit is best handig en maakt het een van de meest flexibele en krachtige databases, maar het stelt ons ook in staat om te doen functioneert als triggers, dat wil zeggen functies die automatisch detecteren welke actie heeft plaatsgevonden en een andere actie activeren, dat wil zeggen, als we in een tabel bijvoorbeeld een trekker om in een andere te updaten, om een ​​heel basale bewerking te geven van wat een trigger is.
Functies zoals triggers
Geen enkele waardevolle database-engine zou zonder de mogelijkheid moeten zijn om te gebruiken triggers om automatisch wijzigingen in gegevens te detecteren en af ​​te handelen. PostgreSQL biedt triggers op statement- en recordniveau; die op zinsniveau lopen één keer voor elke zin, terwijl die op het niveau van registers vele malen kunnen worden uitgevoerd, bijvoorbeeld als we een BIJWERKEN die 1500 records beïnvloedt, zou een trigger op zinsniveau slechts één keer worden uitgevoerd, terwijl de recordtrigger tot 1500 keer zou worden uitgevoerd.
Een ander belangrijk punt in dit onderwerp is het onderscheid dat wordt gemaakt tussen de instructies VOORDAT, DESPUES DE en de IN PLAATS DAARVAN VAN in een trekker.
Een trigger die werkt met VOORDAT wordt geactiveerd voordat de opdracht wordt uitgevoerd, waardoor de mogelijkheid wordt geboden om de gegevens te wijzigen of te annuleren of te manipuleren voordat deze worden gewijzigd, a NA trigger het wordt geactiveerd na de uitvoering van de wijziging, waardoor de mogelijkheid wordt geboden om de reeds gewijzigde gegevens te verkrijgen, dit type trigger wordt meestal gebruikt in logs en replicatiefuncties, de IN PLAATS VAN trekker Het werkt in plaats van de actie die normaal zou worden uitgevoerd, ook een van de eigenaardigheden hiervan is dat het alleen werkt met de weergaven.
Bouw een functie met Trigger
Als we het over functies hebben, weten we dat we andere talen kunnen gebruiken om ze te doen, in het geval van functies zoals triggers is het ook mogelijk om bijna elke taal te gebruiken, maar de PL / pgSQL Het is een favoriet om deze taken uit te voeren, daarom zal het volgende voorbeeld dat we in de afbeelding zullen zien in deze taal worden gemaakt, nadat we het voorbeeld hebben gezien, zullen we het in detail uitleggen:

1. De functie is gedefinieerd als een trigger en kan worden gebruikt in elke tabel met een upd_ts-kolom. De waarde van deze kolom zal worden gewijzigd voordat de aangif.webpte wordt gedaan. De oproep wordt gedaan tijdens het evenement VOORDAT want als het zou worden gebruikt in de DESPUES DE alle wijzigingen aan het nieuwe record zouden worden genegeerd.
2. De trekker gaat af voordat de plaat wordt opgeslagen.
3. Deze functionaliteit die alleen beschikbaar is in PostgreSQL 9.0 of hoger stelt ons in staat om alleen de records te wijzigen die daadwerkelijk zijn aangetast, in eerdere versies was het nodig om vergelijkingen te maken tussen de oude en de nieuwe velden, dit wordt echter niet ondersteund voor de INSTEAD OF-gebeurtenis.
4. We koppelen de Trigger aan de tafel.
Hiermee sluiten we deze tutorial af waarin we hebben gezien hoe we een trigger kunnen maken die in een functie wordt geïmplementeerd, naast weten welke gebeurtenissen we kunnen gebruiken wanneer we ze nodig hebben.Vond je deze tutorial leuk en hielp je hem?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven
wave wave wave wave wave