Razlika med Drop in Truncate

Razlika med Drop in Truncate
Razlika med Drop in Truncate

Video: Razlika med Drop in Truncate

Video: Razlika med Drop in Truncate
Video: Why Medicine Often Has Dangerous Side Effects for Women | Alyson McGregor | TED Talks 2024, November
Anonim

Spusti proti okrnitvi

Drop in Truncate sta dva stavka SQL (Structured Query Language), ki se uporabljata v sistemih za upravljanje baz podatkov, kjer želimo odstraniti podatkovne zapise iz baze podatkov. Stavka Drop in Truncate odstranita celotne podatke v tabeli in povezan stavek SQL. Operacija brisanja v tem primeru ni učinkovita, ker uporablja več prostora za shranjevanje kot Spusti in prireži.

V primeru, da želimo zavreči tabelo v zbirki podatkov skupaj z vsemi podatki, nam SQL omogoča, da to enostavno izvedemo s stavkom Drop. Ukaz Drop je ukaz DDL (Data Definition Language) in ga je mogoče uporabiti za uničenje obstoječe baze podatkov, tabele, indeksa ali pogleda. Iz baze podatkov izbriše vse informacije v tabeli in strukturo tabele. Prav tako se bomo morda želeli preprosto znebiti vseh podatkov v tabeli, vendar brez tabele, in v takem scenariju lahko uporabimo stavek Truncate v SQL. Obrezovanje je tudi ukaz DDL in odstrani vse vrstice v tabeli, vendar ohrani definicijo tabele za prihodnjo uporabo.

Spusti ukaz

Kot smo že omenili, ukaz Spusti odstrani definicijo tabele in vse njene podatke, omejitve celovitosti, indekse, sprožilce in privilegije za dostop, ki so bili ustvarjeni v tej določeni tabeli. Tako v celoti izbriše obstoječi objekt iz baze podatkov in tudi razmerja do drugih tabel po izvedbi ukaza ne bodo več veljavna. Prav tako odstrani vse informacije o tabeli iz podatkovnega slovarja. Sledi tipična sintaksa za uporabo stavka Drop na tabeli.

DROP TABLE

Preprosto moramo zamenjati ime tabele, ki jo želimo odstraniti iz baze podatkov v zgornjem primeru ukaza Drop.

Pomembno je poudariti, da stavka Drop ni mogoče uporabiti za brisanje tabele, na katero se je že sklicevala omejitev tujega ključa. V tem primeru je treba najprej opustiti referenčno omejitev tujega ključa ali to posebno tabelo. Stavka Drop tudi ni mogoče uporabiti za sistemske tabele v bazi podatkov.

Ker je ukaz Drop stavek o samodejni potrditvi, sprožene operacije ni mogoče povrniti nazaj in noben sprožilec ne bo sprožen. Ko je tabela izbrisana, vsi sklice na tabelo ne bodo veljavni, zato jo je treba, če želimo ponovno uporabiti tabelo, ponovno ustvariti z vsemi omejitvami celovitosti in pravicami dostopa. Vse relacije z drugimi tabelami je treba prav tako znova najti.

Ukaz za obrezovanje

Ukaz Truncate je ukaz DDL in odstrani vse vrstice v tabeli brez kakršnih koli pogojev, ki jih določi uporabnik, in sprosti prostor, ki ga uporablja tabela, vendar struktura tabele s svojimi stolpci, indeksi in omejitvami ostane enaka. Obrezovanje odstrani podatke iz tabele tako, da sprosti podatkovne strani, ki se uporabljajo za shranjevanje podatkov tabele, in samo te sprostitve strani se hranijo v dnevniku transakcij. Tako uporablja manj virov dnevnika transakcij in sistemskih virov v primerjavi z drugimi povezanimi ukazi SQL, kot je Delete. Truncate je torej nekoliko hitrejši stavek od drugih. Sledi tipična sintaksa za ukaz Truncate.

OKRAJ TABELO

V zgornji sintaksi bi morali zamenjati ime tabele, iz katere želimo odstraniti vse podatke.

Truncate ni mogoče uporabiti v tabeli, na katero se sklicuje omejitev tujega ključa. Samodejno uporabi objavo, preden ukrepa, in drugo objavo zatem, tako da je povrnitev transakcije nemogoča in se ne sproži noben sprožilec. Če želimo ponovno uporabiti tabelo, potrebujemo le dostop do obstoječe definicije tabele v bazi podatkov.

Kakšna je razlika med Drop in Truncate?

Ukaza Drop in Truncate sta ukaza DDL in sta tudi samodejna potrditev, tako da transakcij, izvedenih s temi ukazi, ni mogoče povrniti.

Primarna razlika med Drop in Truncate je v tem, da ukaz Drop odstrani ne samo vse podatke v tabeli, ampak tudi trajno odstrani strukturo tabele iz baze podatkov z vsemi referencami, medtem ko ukaz Truncate odstrani le vse vrstice v tabeli in ohrani strukturo tabele in njene reference.

Če tabelo izbrišete, razmerja do drugih tabel ne bodo več veljavna, odstranjene pa bodo tudi omejitve celovitosti in privilegiji dostopa. Torej, če je treba tabelo ponovno uporabiti, jo je treba rekonstruirati z razmerji, omejitvami celovitosti in tudi privilegiji dostopa. Toda če je tabela okrnjena, struktura tabele in njene omejitve ostanejo za prihodnjo uporabo, zato nobena od zgornjih ponovnih izdelav ni potrebna za ponovno uporabo.

Ko so ti ukazi uporabljeni, moramo biti pri njihovi uporabi previdni. Prav tako bi morali bolje razumeti naravo teh ukazov, kako delujejo, in tudi skrbno načrtovati, preden jih uporabimo, da preprečimo, da bi zamudili bistvene elemente. Končno lahko oba ukaza uporabite za hitro in enostavno čiščenje baz podatkov, pri čemer porabite manj virov.

Priporočena: