Spouštěče vs kurzory
V databázi je aktivační procedura procedura (segment kódu), která se provede automaticky, když v tabulce / zobrazení dojde k určitým konkrétním událostem. Mezi jeho další použití se spouštěče používají hlavně k udržení integrity v databázi. Kurzor je kontrolní struktura používaná v databázích k procházení záznamů databáze. Je velmi podobný iterátoru poskytovanému mnoha programovacími jazyky.
Co jsou spouštěče?
Spouštěč je procedura (segment kódu), která se provede automaticky, když dojde k určitým konkrétním událostem v tabulce / zobrazení databáze. Mezi jeho další použití se spouštěče používají hlavně k udržení integrity v databázi. Spouštěče se také používají k vynucování obchodních pravidel, auditování změn v databázi a replikaci dat. Nejběžnější spouštěče jsou spouštěče jazyka Data Manipulation Language (DML), které se spouštějí při manipulaci s daty. Některé databázové systémy podporují neaktivní spouštěče, které se aktivují, když dojde k událostem Data Definition Language (DDL). Některé příklady jsou spouštěče, které se aktivují při vytváření tabulek, během operací potvrzení nebo vrácení zpět atd. Tyto spouštěče lze použít zejména pro auditování. Databázový systém Oracle podporuje spouštěče na úrovni schématu (tjaktivační události aktivované při úpravě databázových schémat), například After Creation, Before Alter, After Alter, Before Drop, After Drop atd. Čtyři hlavní typy aktivačních událostí podporovaných Oracle jsou triggery na úrovni řádků, triggery na úrovni sloupců, triggery jednotlivých typů řádků a Pro každý typ výpisu se spustí.
Co jsou kurzory?
Kurzor je kontrolní struktura používaná v databázích k procházení záznamů databáze. Je velmi podobný iterátoru poskytovanému mnoha programovacími jazyky. Kromě procházení záznamů v databázi kurzory také usnadňují načítání dat, přidávání a mazání záznamů. Definováním správného způsobu lze kurzory použít také k pohybu dozadu. Když dotaz SQL vrátí sadu řádků, ty jsou ve skutečnosti zpracovány pomocí kurzorů. Před použitím je třeba deklarovat kurzor a přiřadit mu název. Pak je třeba kurzor otevřít pomocí příkazu OTEVŘÍT. Tato operace by umístila kurzor těsně před první řádek výsledkové sady záznamů. Pak musí kurzor provést operaci FETCH, aby skutečně získal řádek dat do aplikace. Nakonec musí být kurzor zavřen pomocí operace ZAVŘENO. Uzavřené kurzory lze znovu otevřít.
Jaký je rozdíl mezi spouštěči a kurzory?
Spouštěč je procedura (segment kódu), která se provede automaticky, když dojde k určitým konkrétním událostem v tabulce / pohledu na databázi, zatímco kurzor je kontrolní struktura používaná v databázích k procházení záznamů databáze. Kurzor lze deklarovat a použít v rámci spouštěče. V takové situaci by prohlášení bylo uvnitř spouštěče. Pak by byl rozsah kurzoru omezen na tento spouštěč. Pokud je v aktivační události deklarován kurzor na vložené nebo odstraněné tabulce, takový kurzor nebude přístupný z vnořeného aktivačního nástroje. Jakmile je spouštěč dokončen, všechny kurzory vytvořené ve spouštěči budou zrušeny.