Drop vs Truncate

Drop dhe Truncate janë dy deklarata SQL (Language Structured Query Language) që përdoren në Sistemet e Menaxhimit të Baza të të Dhënave, ku dëshirojmë të heqim të dhënat e të dhënave nga një bazë e të dhënave. Të dyja deklaratat e lëshimit dhe të shkurtimit heqin të gjithë të dhënat në një tabelë dhe deklaratën e SQL lidhur. Operacioni Fshi nuk është efektiv në këtë rast sepse përdor më shumë hapësira ruajtëse sesa Drop dhe Truncate.

Në rast se, nëse duam të hedhim një tabelë në një bazë të dhënash, së bashku me të gjitha të dhënat e saj, SQL na lejon ta bëjmë lehtë këtë duke përdorur deklaratën Drop. Drop komanda është një komandë DDL (Data Definition Language) dhe mund të përdoret për të shkatërruar një bazë të dhënash, tabelë, indeks ose pamje. Ai fshin të gjithë informacionin në një tabelë, si dhe strukturën e tabelës nga baza e të dhënave. Gjithashtu, ne mund të dëshirojmë të heqim qafe të gjitha të dhënat në një tabelë thjesht, por pa tabelë, dhe ne mund të përdorim deklaratën Truncate në SQL në një skenar të tillë. Truncate është gjithashtu një komandë DDL dhe eliminon të gjitha rreshtat në një tabelë, por ruan përcaktimin e tabelës njëjtë për përdorim në të ardhmen.

Lësho komandën

Siç u përmend më herët, komanda Drop heq përkufizimin e tabelës dhe të gjitha të dhënat e saj, kufizimet e integritetit, indekset, shkakton dhe privilegjet e hyrjes, e cila u krijua në atë tabelë të veçantë. Pra, ajo heq objektin ekzistues nga baza e të dhënave tërësisht, dhe marrëdhëniet në tabela të tjera gjithashtu nuk do të vlejnë më pas ekzekutimit të komandës. Gjithashtu ai heq të gjitha informacionet në lidhje me tabelën nga fjalori i të dhënave. Më poshtë është sintaksa tipike për përdorimin e deklaratës Drop në një tabelë.

TABELA E BARNAVE

Ne duhet thjesht të zëvendësojmë emrin e tabelës që duam të heqim nga baza e të dhënave në shembullin e mësipërm të komandës Drop.

Shtë e rëndësishme të theksohet se deklarata Drop nuk mund të përdoret për të fshirë një tabelë, e cila tashmë është referuar nga një kufizim i çelësit të huaj. Në atë rast, kufizimi i referencës për çelësin e huaj, ose ajo tabelë e veçantë duhet të hidhet së pari. Gjithashtu, Deklarata Drop nuk mund të aplikohet në tabelat e sistemit në bazën e të dhënave.

Ndërsa komanda Drop është një deklaratë e përkohshme automatike, operacioni pasi të pushohet nuk mund të tërhiqet mbrapa dhe nuk do të shkrihet asnjë shkaktues. Kur të bjerë një tabelë, të gjitha referencat në tabelë nuk do të jenë të vlefshme, dhe kështu, nëse duam të përdorim përsëri tabelën, duhet të rikrijohet me të gjitha kufizimet e integritetit dhe privilegjet e qasjes. Të gjitha marrëdhëniet me tabelat e tjera, gjithashtu duhet të vendosen përsëri.

Komanda e cunguar

Komanda Truncate është një komandë DDL, dhe heq të gjitha rreshtat në një tabelë pa asnjë kushte të specifikuar nga përdoruesi, dhe lëshon hapësirën e përdorur nga tabela, por struktura e tabelës me kolonat, indekset dhe kufizimet e saj mbetet e njëjtë. Shkurtimi eliminon të dhënat nga një tabelë duke zhvendosur faqet e të dhënave të përdorura për të ruajtur të dhënat e tabelës, dhe vetëm këto zhvendosje të faqeve mbahen në regjistrin e transaksioneve. Pra, ai përdor më pak burime log dhe transaksionesh të burimeve të sistemit në krahasim me komandat e tjera të lidhura me SQL si Delete. Pra Truncate është një deklaratë pak më e shpejtë se të tjerët. Më poshtë është sintaksa tipike për komandën Truncate.

TABELA E TRUNCATS

Ne duhet të zëvendësojmë emrin e tabelës, nga e cila duam të heqim të gjitha të dhënat, në sintaksën e mësipërme.

Shkurtesa nuk mund të përdoret në një tabelë që është referuar nga një kufizim i çelësit të huaj. Ajo përdor një zotim automatik para se të veprojë dhe një tjetër angazhim më pas, kështu që kthimi i transaksionit është i pamundur, dhe nuk shkakton zjarr. Nëse duam të ripërdorim tabelën na duhet vetëm të përdorim përkufizimin ekzistues të tabelës në bazën e të dhënave.

Cili është ndryshimi midis Drop dhe Truncate?

Të dy komandat Drop dhe Truncate janë komanda DDL dhe gjithashtu deklarata të përkushtimit automatik në mënyrë që transaksionet e kryera duke përdorur këto komanda nuk mund të kthehen mbrapa.

Dallimi kryesor midis Drop dhe Truncate është se komanda Drop heq, jo vetëm të gjitha të dhënat në një tabelë, por gjithashtu ajo heq strukturën e tabelës përgjithmonë nga baza e të dhënave me të gjitha referencat, ndërsa komanda Truncate vetëm heq të gjitha rreshtat në një tabelë , dhe ruan strukturën e tabelës dhe referencat e saj.

Nëse bie një tabelë, marrëdhëniet me tabelat e tjera nuk do të jenë më të vlefshme, dhe kufizimet e integritetit dhe privilegjet e qasjes gjithashtu do të hiqen. Pra, nëse tabela kërkohet të ripërdoret, ajo duhet të rikonstruktohet me marrëdhëniet, kufizimet e integritetit dhe gjithashtu privilegjet e hyrjes. Por nëse një tabelë është e cunguar, struktura e tabelës dhe kufizimet e saj mbeten për përdorim në të ardhmen, dhe kështu, ndonjë nga rekreacionet e mësipërme nuk kërkohet për ripërdorim.

Kur këto komanda janë zbatuar, ne duhet të jemi të kujdesshëm t'i përdorim ato. Gjithashtu, duhet të kemi një kuptim më të mirë për natyrën e këtyre komandave, mënyrën e funksionimit të tyre, si dhe një planifikim të kujdesshëm para përdorimit të tyre në mënyrë që të parandalohen nga mungesat e sendeve. Më në fund, të dyja këto komanda mund të përdoren për të pastruar bazën e të dhënave shpejt dhe me lehtësi, duke konsumuar më pak burime.