Drop vs Truncate

Drop și Truncate sunt două instrucțiuni SQL (Structed Query Language) care sunt utilizate în sistemele de gestionare a bazelor de date, unde dorim să eliminăm înregistrările de date dintr-o bază de date. Ambele declarații Drop și Truncate elimină datele întregi dintr-un tabel și instrucțiunea SQL aferentă. Operația de ștergere nu este eficientă în acest caz, deoarece folosește mai multe spații de stocare decât Drop și Truncate.

În cazul în care dorim să aruncăm o tabelă dintr-o bază de date cu toate datele sale, SQL ne permite să realizăm cu ușurință acest lucru folosind instrucțiunea Drop. Comanda Drop este o comandă DDL (Data Definition Language) și poate fi folosită pentru a distruge o bază de date, tabel, index sau vizualizare existentă. Șterge informațiile dintr-un tabel, precum și structura tabelului din baza de date. De asemenea, poate dorim să scăpăm de toate datele dintr-un tabel pur și simplu, dar fără tabel, și putem folosi instrucțiunea Truncate în SQL într-un astfel de scenariu. Truncate este, de asemenea, o comandă DDL și elimină toate rândurile dintr-un tabel, dar păstrează aceeași definiție a tabelei pentru o utilizare viitoare.

Renunță la comandă

Așa cum am menționat anterior, comanda Drop elimină definiția tabelului și toate datele sale, constrângerile de integritate, indexurile, declanșatoarele și privilegiile de acces, care a fost creată pe tabela respectivă. Deci, renunță la obiectul existent din baza de date în întregime, iar relațiile cu alte tabele nu vor mai fi valabile după executarea comenzii. De asemenea, elimină toate informațiile despre tabel din dicționarul de date. Urmează sintaxa tipică pentru utilizarea instrucțiunii Drop pe o masă.

TABLA DE DROP

Trebuie să înlocuim pur și simplu numele tabelului pe care dorim să îl eliminăm din baza de date din exemplarul de mai sus al comenzii Drop.

Este important să subliniem că instrucțiunea Drop nu poate fi folosită pentru a șterge un tabel, la care deja a fost făcută referire printr-o restricție de cheie străină. În acest caz, trebuie să se elimine mai întâi restricția de cheie străină sau respectivul tabel. De asemenea, declarația Drop nu poate fi aplicată pe tabelele de sistem din baza de date.

Întrucât comanda Drop este o declarație de auto angajare, operația concediată nu poate fi rulată înapoi și nu va fi declanșată. Când se renunță la o tabelă, toate referințele la tabel nu vor fi valabile și, astfel, dacă dorim să utilizăm din nou tabelul, aceasta trebuie recreată cu toate restricțiile de integritate și privilegiile de acces. Toate relațiile cu celelalte tabele, de asemenea, trebuie să fie localizate din nou.

Tronează comanda

Comanda Truncate este o comandă DDL și elimină toate rândurile dintr-un tabel fără nicio condiție specificată de utilizator și eliberează spațiul folosit de tabel, dar structura tabelului cu coloanele, indexurile și restricțiile sale rămân aceleași. Truncate elimină datele dintr-un tabel eliminând paginile de date utilizate pentru a stoca datele tabelului și numai aceste deallocări de pagini sunt păstrate în jurnalul de tranzacții. Prin urmare, utilizează mai puține resurse de jurnal de tranzacții și resurse de sistem în comparație cu alte comenzi SQL conexe, cum ar fi Ștergere. Deci, Truncate este o afirmație puțin mai rapidă decât alții. Urmează sintaxa tipică pentru comanda Truncate.

TABLA DE TRUNCATE

Ar trebui să înlocuim numele tabelului, din care dorim să eliminăm toate datele, din sintaxa de mai sus.

Truncatul nu poate fi folosit pe o tabelă la care a fost făcută referire printr-o restricție de cheie străină. Utilizează automat un angajament înainte de a acționa și un alt angajament ulterior, astfel încât returnarea tranzacției este imposibilă și nu sunt declanșate. Dacă dorim să reutilizăm tabelul, trebuie doar să accesăm definiția tabelului existentă în baza de date.

Care este diferența dintre Drop și Truncate?

Ambele comenzi Drop și Truncate sunt comenzi DDL și, de asemenea, declarații de auto angajare, astfel încât tranzacțiile efectuate cu aceste comenzi nu pot fi returnate.

Diferența principală dintre Drop și Truncate este că comanda Drop elimină, nu numai toate datele dintr-un tabel, ci și elimină permanent structura tabelului din baza de date cu toate referințele, în timp ce comanda Truncate elimină doar toate rândurile dintr-un tabel și păstrează structura tabelului și referințele sale.

Dacă o tabelă este abandonată, relațiile cu celelalte tabele nu vor mai fi valabile, iar restricțiile de integritate și privilegiile de acces vor fi, de asemenea, eliminate. Deci, dacă tabelul este necesar să fie reutilizat, acesta trebuie reconstruit cu relațiile, constrângerile de integritate și, de asemenea, privilegiile de acces. Dar dacă o tabelă este trunchiată, structura tabelului și constrângerile sale rămân pentru utilizare viitoare, astfel încât niciuna dintre recreările de mai sus nu este necesară pentru reutilizare.

Atunci când aceste comenzi sunt aplicate, trebuie să fim precauți să le utilizăm. De asemenea, ar trebui să înțelegem mai bine natura acestor comenzi, modul de funcționare și, de asemenea, o planificare atentă înainte de a le folosi pentru a preveni lipsa de esențial. În cele din urmă, ambele comenzi pot fi utilizate pentru curățarea bazelor de date rapid și ușor, consumând mai puține resurse.