Drop vs Truncate

Drop ir Truncate yra du SQL (Structured Query Language) teiginiai, naudojami duomenų bazių valdymo sistemose, kur norime pašalinti duomenų įrašus iš duomenų bazės. Ir „Drop“, ir „Truncate“ sakiniai pašalina visus duomenis iš lentelės ir susijusius SQL teiginius. Ištrynimo operacija šiuo atveju nėra efektyvi, nes ji naudoja daugiau atminties vietų nei „Numesti ir sutrumpinti“.

Tuo atveju, jei norime išmesti duomenų bazės lentelę kartu su visais jos duomenimis, SQL leidžia mums lengvai tai atlikti naudodamiesi Drop sakiniu. „Drop“ komanda yra DDL (duomenų apibrėžimo kalba) komanda, kuri gali būti naudojama sunaikinti esamą duomenų bazę, lentelę, rodyklę ar rodinį. Tai ištrina visą lentelės informaciją, taip pat lentelės struktūrą iš duomenų bazės. Taip pat galime norėti atsikratyti visų lentelės duomenų paprasčiausiai, bet be lentelės, ir tokiu scenarijumi galime naudoti „Sutrumpinti“ teiginį SQL. Apipjaustymas taip pat yra DDL komanda ir pašalina visas lentelės eilutes, tačiau išsaugo lentelės apibrėžimą tą patį ateityje.

Drop komanda

Kaip minėta anksčiau, komanda „Drop“ pašalina lentelės apibrėžimą ir visus jos duomenis, vientisumo apribojimus, indeksus, aktyviklius ir prieigos teises, kurie buvo sukurti toje konkrečioje lentelėje. Taigi jis visiškai pašalina esamą objektą iš duomenų bazės, o santykiai su kitomis lentelėmis taip pat nebegalioja po komandos vykdymo. Tai taip pat pašalina visą informaciją apie lentelę iš duomenų žodyno. Toliau pateikiama tipinė Drop teiginio naudojimo lentelėje sintaksė.

NUORODOS LENTELĖ

Mes turime tiesiog pakeisti lentelės pavadinimą, kurį norime pašalinti iš duomenų bazės aukščiau esančiame Drop komandos pavyzdyje.

Svarbu pabrėžti, kad Drop sakinys negali būti naudojamas lentelės, kuriai jau buvo nurodytas svetimo rakto apribojimas, ištrynimui. Tokiu atveju pirmiausia reikėtų atsisakyti nuorodančio svetimo rakto apribojimo arba tos lentelės. Taip pat „Drop“ pareiškimas negali būti taikomas duomenų bazės sisteminėse lentelėse.

Kadangi komanda „Drop“ yra automatinis įsipareigojimo pareiškimas, operacija, kurią atleidote, negali būti atšaukta ir jokie aktyvikliai nebus atšaukti. Nuleidus lentelę, visos nuorodos į lentelę negalioja, todėl, jei norime vėl naudoti lentelę, ją reikia sukurti iš naujo su visais vientisumo apribojimais ir prieigos privilegijomis. Visi santykiai su kitomis lentelėmis taip pat turi būti iš naujo nustatyti.

Apipjaustyti komandą

Truncate komanda yra DDL komanda, ji pašalina visas lentelės eilutes be jokių vartotojo nurodytų sąlygų ir atlaisvina lentelės naudojamą vietą, tačiau lentelės struktūra su jos stulpeliais, rodyklėmis ir apribojimais išlieka ta pati. Truncate pašalina duomenis iš lentelės, paskirstant duomenų puslapius, kurie naudojami lentelės duomenims saugoti, ir tik šie puslapių sandoriai yra saugomi operacijų žurnale. Taigi jis naudoja mažiau operacijų žurnalo išteklių ir sistemos išteklių, palyginti su kitomis susijusiomis SQL komandomis, tokiomis kaip Trinti. Taigi sutrumpinimas yra šiek tiek greitesnis teiginys nei kiti. Toliau pateikiama tipiška „Truncate“ komandos sintaksė.

NUSTATYMO LENTELĖ

Lentelės pavadinimą, iš kurio norime pašalinti visus duomenis, turėtume pakeisti aukščiau pateiktoje sintaksėje.

Apipjaustymas negali būti naudojamas ant lentelės, kuriai nurodytas svetimo rakto suvaržymas. Prieš imdamasis veiksmų, jis automatiškai naudoja įsipareigojimą, o po to dar vieną įsipareigojimą, todėl operacijos atšaukti neįmanoma ir jokie aktyvikliai nėra atleidžiami. Jei norime lentelę naudoti pakartotinai, mums reikia tik prieiti prie esamos lentelės apibrėžties duomenų bazėje.

Kuo skiriasi „Drop“ ir „Truncate“?

Ir „Drop“, ir „Truncate“ komandos yra DDL komandos ir automatinio įsipareigojimo pareiškimai, todėl operacijų, atliktų naudojant šias komandas, negalima atšaukti.

Pagrindinis skirtumas tarp „Drop“ ir „Truncate“ 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 „Truncate“ komanda pašalina tik visas lentelės eilutes. , ir ji išsaugo lentelės struktūrą ir jos nuorodas.

Jei lentelė bus atmesta, santykiai su kitomis lentelėmis nebegalioja, o vientisumo apribojimai ir prieigos teisės taip pat bus pašalinti. Taigi, jei lentelę reikia pakartotinai naudoti, ji turi būti rekonstruota atsižvelgiant į ryšius, vientisumo apribojimus ir prieigos teises. Bet jei stalas yra apipjaustytas, stalo struktūra ir jo apribojimai lieka naudoti ateityje, taigi, pakartotiniam naudojimui nereikia nė vieno iš aukščiau išvardytų rekreacijų.

Kai pritaikome šias komandas, turime būti atsargūs jomis naudotis. Be to, turėtume geriau suprasti šių komandų pobūdį, jų veikimą ir kruopštų planavimą prieš naudodamiesi jomis, kad išvengtume esminių dalykų. Galiausiai abi šias komandas galima greitai ir lengvai išvalyti duomenų bazes, sunaudojant mažiau išteklių.