Spouštěče vs kurzory
V databázi je spouštěčem procedura (kódový segment), která se provádí automaticky, když se v tabulce / pohledu vyskytnou některé specifické události. Spouštěče se mimo jiné používají hlavně k udržení integrity v databázi. Kurzor je řídicí struktura používaná v databázích k procházení databázovými záznamy. Je velmi podobný iterátoru poskytovanému mnoha programovacími jazyky.
Co jsou spouštěče?
Spoušť je procedura (kódový segment), která se provádí automaticky, když se v tabulce / pohledu na databázi vyskytnou určité specifické události. Spouštěče se mimo jiné používají hlavně k udržení integrity v databázi. Spouštěče se také používají pro vymáhá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 DML (Data Manipulation Language), které se spouštějí při manipulaci s daty. Některé databázové systémy podporují ne-datové spouštěče, které se spouštějí, když dojde k událostem Data Definition Language (DDL). Některé příklady jsou spouštěče, které se spouštějí 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 (tj. Spouštění spouštěné při změně schémat databáze), jako jsou After Creation, Before Alter, After Alter, Before Drop, After Drop atd. Čtyři hlavní typy triggerů podporovaných Oracle jsou triggery na úrovni řádků, Spouštěče na úrovni sloupců, spouštěče pro každý typ řádku a spouštěče pro každý typ příkazu.
Co jsou kurzory?
Kurzor je řídicí struktura používaná v databázích k procházení databázovými záznamy. Je velmi podobný iterátoru poskytovanému mnoha programovacími jazyky. Kurzory kromě procházení záznamy v databázi usnadňují vyhledávání a přidávání a mazání záznamů. Správným definováním kurzoru lze také použít k pohybu vzad. Když dotaz SQL vrátí sadu řádků, jsou ve skutečnosti zpracovány pomocí kurzoru. Než lze kurzor použít, musí být deklarován a přiřazen název. Potom musí být kurzor otevřen příkazem OTEVŘENO. Tato operace umístí kurzor těsně před první řádek výsledkové sady záznamů. Potom musí kurzor provést operaci FETCH, aby do aplikace skutečně dostal řadu dat. Nakonec musí být kurzor uzavřen pomocí operace ZAVŘÍT. Uzavřené kurzory lze znovu otevřít.
Jaký je rozdíl mezi Triggers a Cursors?
Spoušť je procedura (kódový segment), která je prováděna automaticky, když se v tabulce / pohledu na databázi vyskytnou některé specifické události, zatímco kurzor je řídicí struktura používaná v databázích pro procházení databázovými záznamy. Kurzor může být deklarován a použit v rámci spouště. V takové situaci by bylo prohlášení v deklaraci uvnitř spouště. Potom by se rozsah kurzoru omezil na tento trigger. Pokud je v triggeru deklarován kurzor na vložené nebo smazané tabulce, takový kurzor nebude přístupný z vnořeného triggeru. Jakmile je spouštěč dokončen, budou všechny kurzory vytvořené v rámci spouště uvolněny.