„Drop vs Truncate“
„Drop and Truncate“yra du SQL („Structured Query Language“) sakiniai, naudojami duomenų bazių valdymo sistemose, kur norime pašalinti duomenų įrašus iš duomenų bazės. Tiek „Drop“, tiek „Truncate“sakiniai pašalina visus lentelės duomenis ir susijusį SQL sakinį. Šiuo atveju naikinimo operacija nėra veiksminga, nes ji naudoja daugiau vietos nei „Drop and Truncate“.
Tuo atveju, jei norime išmesti lentelę iš duomenų bazės kartu su visais jos duomenimis, SQL leidžia mums tai lengvai atlikti naudojant „Drop“sakinį. „Drop“komanda yra DDL (Data Definition Language) komanda ir ją galima naudoti sunaikinant esamą duomenų bazę, lentelę, rodyklę ar rodinį. Iš duomenų bazės ištrinama visa lentelės informacija, taip pat lentelės struktūra. Be to, mes galime norėti atsikratyti visų lentelės duomenų paprasčiausiai, bet be lentelės, ir tokiame scenarijuje galime naudoti „Truncate“sakinį SQL. „Truncate“taip pat yra DDL komanda, kuri pašalina visas lentelės eilutes, tačiau lentelės apibrėžimą išsaugo ir ateityje.
Nuleisti komandą
Kaip minėta anksčiau, komanda „Drop“pašalina lentelės apibrėžimą ir visus jo duomenis, vientisumo apribojimus, indeksus, aktyviklius ir prieigos teises, kurios buvo sukurtos būtent šioje lentelėje. Taigi jis visiškai išmeta esamą objektą iš duomenų bazės, o ryšiai su kitomis lentelėmis taip pat nebegalios atlikus komandą. Be to, ji pašalina visą informaciją apie lentelę iš duomenų žodyno. Toliau pateikiama tipinė lašo lašo naudojimo sintaksė lentelėje.
LAŠINĖ LENTELĖ
Pirmiau pateiktame „Drop“komandos pavyzdyje turime tiesiog pakeisti lentelės pavadinimą, kurį norime pašalinti iš duomenų bazės.
Svarbu pažymėti, kad lašas „Drop“negali būti naudojamas norint ištrinti lentelę, į kurią jau nurodė užsienio rakto apribojimas. Tokiu atveju pirmiausia reikėtų atsisakyti nuorodinio užsienio rakto apribojimo arba tos konkrečios lentelės. Be to, „Drop“sakinio negalima pritaikyti duomenų bazės sistemos lentelėse.
Kadangi „Drop“komanda yra automatinio įsipareigojimo sakinys, suaktyvintos operacijos negalima sugrąžinti atgal ir jokie trigeriai nebus paleisti. Nukritus lentelei, visos nuorodos į lentelę negalios, taigi, jei norime lentelę naudoti dar kartą, ją reikia atkurti su visais vientisumo apribojimais ir prieigos teisėmis. Visi santykiai su kitomis lentelėmis taip pat turi būti surasti dar kartą.
Sutrumpinti komandą
Komanda „Truncate“yra DDL komanda, kuri pašalina visas lentelės eilutes be jokių vartotojo nurodytų sąlygų ir atleidžia lentelės naudojamą vietą, tačiau lentelės struktūra su stulpeliais, rodyklėmis ir apribojimais lieka ta pati. „Truncate“pašalina duomenis iš lentelės, paskirstydami duomenų puslapius, naudojamus lentelės duomenims saugoti, ir tik šie puslapių paskirstymai laikomi operacijų žurnale. Taigi jis naudoja mažiau operacijų žurnalo išteklių ir sistemos išteklių, palyginti su kitomis susijusiomis SQL komandomis, tokiomis kaip „Delete“. Taigi „Truncate“yra šiek tiek greitesnis pareiškimas nei kiti. Toliau pateikiama tipinė komandos „Truncate“sintaksė.
TRUNCATE LENTELĖ
Lentelės pavadinimą, iš kurio norime pašalinti visus duomenis, turėtume pakeisti pirmiau pateiktoje sintaksėje.
Sutrumpinti negalima naudoti lentelėje, į kurią buvo nurodytas svetimo rakto suvaržymas. Jis automatiškai naudoja įsipareigojimą, kol neįvykdo, ir kitą įsipareigojimą po to, todėl neįmanoma grąžinti operacijos ir nėra paleista. Jei norime pakartotinai naudoti lentelę, turime pasiekti tik duomenų bazėje esamą lentelės apibrėžimą.
Kuo skiriasi „Drop“ir „Truncate“?
Tiek „Drop“, tiek „Truncate“komandos yra DDL komandos, taip pat automatinio įvykdymo sakiniai, todėl operacijų, atliktų naudojant šias komandas, negalima sugrąžinti.
Pagrindinis skirtumas tarp „Drop“ir „Trumpate“yra tas, kad komanda „Drop“pašalina ne tik visus lentelės duomenis, bet ir visam laikui pašalina lentelės struktūrą iš duomenų bazės su visomis nuorodomis, o komanda „Truncate“pašalina tik visas lentelės eilutes, taip pat išsaugoma lentelės struktūra ir nuorodos.
Jei lentelė bus išmesta, ryšiai su kitomis lentelėmis nebegalios, taip pat bus pašalinti vientisumo apribojimai ir prieigos teisės. Taigi, jei lentelę reikia naudoti pakartotinai, ją reikia rekonstruoti atsižvelgiant į ryšius, vientisumo apribojimus ir prieigos teises. Bet jei lentelė yra sutrumpinta, lentelės struktūra ir jos apribojimai lieka naudoti ateityje, todėl pakartotiniam naudojimui nereikia jokių aukščiau paminėtų rekreacijų.
Kai šios komandos taikomos, turime būti atsargūs jomis naudotis. Be to, turėtume geriau suprasti šių komandų pobūdį, jų veikimą ir kruopštų planavimą prieš jas naudodami, kad išvengtumėte svarbiausių dalykų. Galiausiai, abi šias komandas galima greitai ir lengvai išvalyti duomenų bazes, sunaudojant mažiau išteklių.