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: SQL: Șterge Vs Trunchie Vs Drop 2024, Aprilie
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, unde dorim să eliminăm înregistrările de date dintr-o bază de date. Ambele instrucțiuni Drop și Truncate elimină toate datele 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 and Truncate.

În cazul în care, dacă dorim să eliminăm un tabel dintr-o bază de date, împreună 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 utilizată pentru a distruge o bază de date, un tabel, un index sau o vizualizare existente. Șterge toate informațiile dintr-un tabel, precum și structura tabelului din baza de date. De asemenea, este posibil să dorim să scăpăm de toate datele dintr-un tabel 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 o utilizare viitoare.

Drop comanda

După cum s-a 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 au fost create pe tabela respectivă. Deci, elimină în întregime obiectul existent din baza de date, 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ă.

MESAJ DE DROP

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

Este important să subliniem că declarația Drop nu poate fi utilizată pentru a șterge un tabel, care a fost deja menționat de o constrângere de cheie externă. În acest caz, trebuie să renunțați mai întâi la constrângerea referitoare la cheia externă sau la acel tabel. De asemenea, declarația Drop nu poate fi aplicată pe tabelele de sistem din baza de date.

Deoarece comanda Drop este o declarație auto commit, operația odată declanșată nu poate fi derulată înapoi și nu se vor declanșa declanșatoare. Când un tabel este abandonat, toate referințele la tabel nu vor fi valabile și, așadar, dacă dorim să folosim tabelul din nou, acesta trebuie recreat cu toate constrângerile de integritate și privilegiile de acces. Toate relațiile cu celelalte tabele trebuie, de asemenea, localizate din nou.

Comanda de tăiere

Comanda Trunchie este o comandă DDL și elimină toate rândurile dintr-un tabel fără condiții specificate de utilizator și eliberează spațiul folosit de tabel, dar structura tabelului cu coloanele, indexurile și constrângerile sale rămâne aceeași. Truncate elimină datele dintr-un tabel prin alocarea paginilor de date utilizate pentru stocarea datelor din tabel și numai aceste alocări de pagini sunt păstrate în jurnalul de tranzacții. Deci utilizează mai puține resurse de jurnal de tranzacții și resurse de sistem comparativ cu alte comenzi SQL conexe, cum ar fi Ștergere. Deci Truncate este o declarație puțin mai rapidă decât altele. Urmează sintaxa tipică pentru comanda Truncate.

TABLE TRUNCATE

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

Trunchierea nu poate fi utilizată pe un tabel la care sa făcut referire printr-o constrângere a cheii străine. Folosește un commit automat înainte de a acționa și un alt commit ulterior, astfel încât restabilirea tranzacției este imposibilă și nu sunt declanșate declanșatoare. Dacă dorim să refolosim 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, instrucțiuni auto commit, astfel încât tranzacțiile efectuate folosind aceste comenzi nu pot fi derulate înapoi.

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

Dacă un tabel este renunțat, relațiile cu alte tabele nu vor mai fi valabile și restricțiile de integritate și privilegiile de acces vor fi, de asemenea, eliminate. Deci, dacă tabelul trebuie reutilizat, trebuie să fie reconstruit cu relațiile, constrângerile de integritate și, de asemenea, cu privilegiile de acces. Dar dacă un tabel este trunchiat, structura tabelului și constrângerile sale rămân pentru utilizare viitoare, și astfel, oricare dintre recreațiile de mai sus nu sunt necesare pentru reutilizare.

Când se aplică aceste comenzi, trebuie să fim atenți să le folosim. De asemenea, ar trebui să avem o mai bună înțelegere a naturii acestor comenzi, modul în care funcționează și, de asemenea, o planificare atentă înainte de a le utiliza pentru a preveni lipsa elementelor esențiale. În cele din urmă, ambele comenzi pot fi utilizate pentru a curăța bazele de date rapid și ușor, consumând mai puține resurse.

Recomandat: