Spúšťače vs kurzory
V databáze je spúšťačom procedúra (kódový segment), ktorá sa vykonáva automaticky, keď sa v tabuľke / zobrazení vyskytnú určité špecifické udalosti. Spúšťače sa okrem iného používajú hlavne na udržanie integrity v databáze. Kurzor je riadiaca štruktúra používaná v databázach na prechádzanie databázovými záznamami. Je veľmi podobný iterátoru poskytovanému mnohými programovacími jazykmi.
Čo sú spúšťače?
Spúšťač je procedúra (segment kódu), ktorá sa vykonáva automaticky, keď sa vyskytnú niektoré špecifické udalosti v tabuľke / zobrazení databázy. Spúšťače sa okrem iného používajú hlavne na udržanie integrity v databáze. Spúšťače sa používajú aj na presadzovanie obchodných pravidiel, auditovanie zmien v databáze a replikáciu údajov. Najbežnejšie spúšťače sú spúšťače jazyka DML (Data Manipulation Language), ktoré sa spúšťajú pri manipulácii s údajmi. Niektoré databázové systémy podporujú spúšťače bez údajov, ktoré sa spúšťajú pri výskyte udalostí jazyka DDL (Data Definition Language). Niektoré príklady sú spúšťače, ktoré sa spúšťajú pri vytváraní tabuliek, počas operácií potvrdenia alebo vrátenia, atď. Tieto spúšťače sa môžu použiť najmä na auditovanie. Databázový systém Oracle podporuje spúšťače na úrovni schém (tj spúšťače spúšťané pri úprave databázových schém), napríklad Po vytvorení, Pred úpravou, Po zmene, Pred poklesom, Po poklese atď. Štyri hlavné typy spúšťačov podporovaných spoločnosťou Oracle sú spúšťače na úrovni riadkov, Spúšťače na úrovni stĺpcov, spúšťače každého typu riadku a spúšťače pre každý typ príkazu.
Čo sú kurzory?
Kurzor je riadiaca štruktúra používaná v databázach na prechádzanie databázovými záznamami. Je veľmi podobný iterátoru poskytovanému mnohými programovacími jazykmi. Kurzory okrem prechádzania záznamy v databáze uľahčujú aj získavanie údajov, pridávanie a odstraňovanie záznamov. Správnym určením cesty sa môžu kurzory použiť aj na posun dozadu. Keď dotaz SQL vráti sadu riadkov, tieto sa skutočne spracujú pomocou kurzorov. Predtým, ako sa dá použiť, musí byť deklarovaný kurzor a musí mu byť pridelené meno. Potom musí byť kurzor otvorený pomocou príkazu OTVORENÉ (OPEN). Táto operácia by umiestnila kurzor tesne pred prvý riadok sady záznamov výsledkov. Potom musí kurzor vykonať operáciu FETCH, aby skutočne dostal do aplikácie rad údajov. Nakoniec musí byť kurzor zatvorený pomocou operácie ZATVORIŤ (CLOSE). Uzavreté kurzory sa dajú znova otvoriť.
Aký je rozdiel medzi Triggers a Cursors?
Spúšťač je procedúra (kódový segment), ktorá sa vykonáva automaticky, keď sa vyskytnú niektoré špecifické udalosti v tabuľke / zobrazení databázy, zatiaľ čo kurzor je riadiaca štruktúra používaná v databázach na prechádzanie databázovými záznamami. Kurzor je možné deklarovať a použiť v rámci spúšťača. V takom prípade by bolo vyhlásenie vo vnútri spúšťača. Potom by sa rozsah kurzora obmedzil na tento spúšťač. Ak je v rámci spúšťača deklarovaný kurzor na vloženej alebo odstránenej tabuľke, takýto kurzor by nebol dostupný z vnoreného spúšťača. Po dokončení spúšťača sa všetky kurzory vytvorené v rámci spúšťača zrušia.