Diferența dintre Drop și Truncate

Diferența dintre Drop și Truncate
Diferența dintre Drop și Truncate

Video: Diferența dintre Drop și Truncate

Video: Diferența dintre Drop și Truncate
Video: What To Do After BTech In 2023- BTech के बाद नौकरी की 100% Security है? Learn With Sumit 2024, Iulie
Anonim

Drop vs Truncate

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

În cazul în care, dacă dorim să aruncăm un tabel dintr-o bază de date împreună cu toate datele sale, SQL ne permite să facem acest lucru cu ușurință folosind instrucțiunea Drop. Comanda Drop este o comandă DDL (Data Definition Language) și poate fi folosită pentru a distruge o bază de date, un tabel, un index sau o vizualizare existentă. Acesta șterge întreaga informație dintr-un tabel, precum și structura tabelului din baza de date. De asemenea, putem dori 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 tabelului pentru utilizare ulterioară.

Comanda de aruncare

Așa cum am menționat mai devreme, comanda Drop elimină definiția tabelului și toate datele sale, constrângerile de integritate, indexurile, declanșatoarele și privilegiile de acces, care au fost create pe acel tabel special. Deci, elimină obiectul existent din baza de date în întregime, iar relațiile cu alte tabele, de asemenea, nu vor mai fi valabile după executarea comenzii. De asemenea, elimină toate informațiile despre tabel din dicționarul de date. Mai jos este sintaxa tipică pentru utilizarea instrucțiunii Drop pe un tabel.

DROP TABLE

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

Este important de subliniat că instrucțiunea Drop nu poate fi utilizată pentru a șterge un tabel, care a fost deja referit printr-o constrângere de cheie străină. În acest caz, constrângerea cheii externe de referință sau acel tabel special ar trebui să fie eliminate mai întâi. De asemenea, declarația Drop nu poate fi aplicată pe tabelele de sistem din baza de date.

Deoarece comanda Drop este o declarație de confirmare automată, operația odată declanșată nu poate fi anulată și nu va fi declanșat niciun declanșator. Când un tabel este abandonat, toate referințele la tabel nu vor fi valide și, așadar, dacă dorim să folosim din nou tabelul, acesta trebuie să fie recreat cu toate constrângerile de integritate și privilegiile de acces. De asemenea, toate relațiile cu celel alte tabele trebuie să fie localizate din nou.

Truncate command

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, indecșii și constrângerile sale rămân aceleași. Truncare elimină datele dintr-un tabel prin dealocarea paginilor de date utilizate pentru a stoca datele din tabel și numai aceste dealocari 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 asociate, cum ar fi Delete. Deci Truncate este o declarație puțin mai rapidă decât altele. Mai jos este sintaxa tipică pentru comanda Truncate.

TRUNCATE TABLE

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

Truncate nu poate fi utilizat pe un tabel care a fost referit printr-o constrângere de cheie străină. Utilizează un commit automat înainte de a acționa și un alt commit după aceea, astfel încât derularea tranzacției este imposibilă și nu sunt declanșate niciun declanșator. Dacă dorim să reutilizam tabelul, trebuie doar să accesăm definiția tabelului existent în baza de date.

Care este diferența dintre Drop și Truncate?

Atât comenzile Drop, cât și Truncate sunt comenzi DDL și, de asemenea, declarații de confirmare automată, astfel încât tranzacțiile efectuate folosind aceste comenzi nu pot fi anulate.

Diferența principală dintre Drop și Truncate este că comanda Drop elimină nu numai toate datele dintr-un tabel, ci și structura tabelului în mod permanent 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ă un tabel este abandonat, relațiile cu alte tabele nu vor mai fi valabile, iar constrângerile de integritate și privilegiile de acces vor fi, de asemenea, eliminate. Deci, dacă tabelul trebuie reutilizat, acesta trebuie reconstruit cu relațiile, constrângerile de integritate și, de asemenea, privilegiile de acces. Dar dacă un tabel este trunchiat, structura tabelului și constrângerile sale rămân pentru utilizare ulterioară și, prin urmare, oricare dintre recreațiile de mai sus nu sunt necesare pentru reutilizare.

Când aceste comenzi sunt aplicate, trebuie să fim atenți să le folosim. De asemenea, ar trebui să înțelegem mai bine natura acestor comenzi, modul în care funcționează și, de asemenea, o planificare atentă înainte de a le folosi pentru a preveni lipsa elementelor esențiale. În cele din urmă, ambele comenzi pot fi folosite pentru a curăța bazele de date rapid și ușor, consumând mai puține resurse.

Recomandat: