Drop vs Skrátiť
Drop a Truncate sú dva príkazy SQL (Structured Query Language), ktoré sa používajú v systémoch správy databáz, kde chceme odstrániť dátové záznamy z databázy. Príkazy Drop aj Truncate odstránia všetky údaje v tabuľke a súvisiaci príkaz SQL. Operácia odstránenia nie je v tomto prípade efektívna, pretože využíva viac úložného priestoru ako Drop and Truncate.
V prípade, že ak chceme zahodiť tabuľku v databáze spolu so všetkými jej údajmi, SQL nám umožňuje toto jednoducho vykonať pomocou príkazu Drop. Príkaz drop je príkaz DDL (Data Definition Language) a možno ho použiť na zničenie existujúcej databázy, tabuľky, indexu alebo zobrazenia. Odstráni všetky informácie v tabuľke, ako aj štruktúru tabuľky z databázy. Možno by sme sa tiež chceli zbaviť všetkých údajov v tabuľke jednoducho, ale bez tabuľky, a v takomto prípade môžeme použiť príkaz Truncate v jazyku SQL. Skrátiť je tiež príkaz DDL a eliminuje všetky riadky v tabuľke, ale zachováva definíciu tabuľky rovnako pre ďalšie použitie.
Príkaz pustiť
Ako už bolo spomenuté, príkaz Drop odstráni definíciu tabuľky a všetky jej údaje, obmedzenia integrity, indexy, spúšťače a prístupové privilégiá, ktoré boli vytvorené v konkrétnej tabuľke. Existujúci objekt teda z databázy úplne vypadne a vzťahy k iným tabuľkám tiež nebudú po vykonaní príkazu platné. Taktiež odstráni všetky informácie o tabuľke z dátového slovníka. Nasleduje typická syntax pre použitie príkazu Drop na stôl.
TABUĽKA DROP
Musíme jednoducho nahradiť názov tabuľky, ktorú chceme odstrániť z databázy, vo vyššie uvedenom príklade príkazu Drop.
Je dôležité poukázať na to, že príkazom Drop nie je možné vymazať tabuľku, na ktorú sa už vzťahuje obmedzenie cudzím kľúčom. V takom prípade by najskôr malo byť zrušené obmedzenie odkazovania na cudzí kľúč alebo konkrétna tabuľka. Príkaz Drop nemožno použiť ani na systémové tabuľky v databáze.
Pretože príkaz Drop je príkazom automatického potvrdenia, operáciu po spustení nie je možné vrátiť späť a nebudú spustené žiadne spúšťače. Po zrušení tabuľky nebudú všetky odkazy na tabuľku platné, a preto, ak chceme tabuľku znova použiť, musí byť znovu vytvorená so všetkými obmedzeniami integrity a prístupovými oprávneniami. Všetky vzťahy k ostatným tabuľkám musia byť tiež nájdené znova.
Príkaz skrátiť
Príkaz Truncate je príkaz DDL a odstráni všetky riadky v tabuľke bez akýchkoľvek podmienok zadaných používateľom a uvoľní priestor, ktorý tabuľka používa, ale štruktúra tabuľky s jej stĺpcami, indexmi a obmedzeniami zostane rovnaká. Skrátiť eliminuje údaje z tabuľky pridelením dátových stránok použitých na ukladanie údajov tabuľky a v denníku transakcií sa uchovávajú iba tieto pridelenia stránok. Využíva teda menej zdrojov denníka transakcií a systémových prostriedkov v porovnaní s inými súvisiacimi príkazmi SQL, ako je napríklad Delete. Skrátiť je teda o niečo rýchlejšie vyhlásenie ako iné. Nasleduje typická syntax príkazu Truncate.
SKRATKA TABUĽKA
Názov tabuľky, z ktorej chceme odstrániť všetky údaje, by sme mali nahradiť vyššie uvedenou syntaxou.
Skrátiť nemožno použiť na tabuľku, na ktorú sa odkazuje podľa obmedzenia cudzieho kľúča. Používa potvrdenie automaticky skôr, ako koná, a ďalšie potvrdenie potom, takže vrátenie transakcie je nemožné a nespúšťajú sa žiadne spúšťače. Ak chceme tabuľku znovu použiť, musíme iba získať prístup k existujúcej definícii tabuľky v databáze.
Aký je rozdiel medzi Drop a Truncate?
Príkazy Drop aj Truncate sú príkazy DDL a tiež príkazy automatického potvrdenia, takže transakcie vykonané pomocou týchto príkazov nie je možné vrátiť späť.
Primárny rozdiel medzi Drop a Truncate je v tom, že príkaz Drop odstráni nielen všetky údaje v tabuľke, ale tiež natrvalo odstráni štruktúru tabuľky z databázy so všetkými odkazmi, zatiaľ čo príkaz Truncate odstráni iba všetky riadky v tabuľke a zachováva štruktúru tabuľky a jej odkazy.
Ak tabuľku zrušíte, vzťahy s ostatnými tabuľkami už nebudú platné a odstránia sa aj obmedzenia integrity a prístupové privilégiá. Ak sa teda od tabuľky vyžaduje opakované použitie, musí sa rekonštruovať pomocou vzťahov, obmedzení integrity a tiež prístupových oprávnení. Ak je ale tabuľka skrátená, štruktúra tabuľky a jej obmedzenia zostávajú pre budúce použitie, a preto nie je na opätovné použitie potrebné žiadne z vyššie uvedených spôsobov rekreácie.
Keď sú tieto príkazy aplikované, musíme byť pri ich používaní opatrní. Mali by sme tiež lepšie porozumieť povahe týchto príkazov, ich fungovaniu a tiež nejaké dôkladné plánovanie pred ich použitím, aby sa predišlo strate dôležitých vecí. Na záver možno obidva tieto príkazy použiť na rýchle a ľahké vyčistenie databáz, ktoré spotrebujú menej prostriedkov.