Drop versus Truncate

Drop en Truncate zijn twee SQL-instructies (Structured Query Language) die worden gebruikt in Database Management Systems, waarbij we gegevensrecords uit een database willen verwijderen. Zowel Drop- als Truncate-instructies verwijderen alle gegevens in een tabel en de bijbehorende SQL-instructie. De verwijderbewerking is in dit geval niet effectief omdat deze meer opslagruimte gebruikt dan Drop en Truncate.

In het geval dat we een tabel in een database helemaal met alle gegevens willen weggooien, kunnen we dit met SQL eenvoudig uitvoeren met de Drop-instructie. Drop-opdracht is een DDL-opdracht (Data Definition Language) en kan worden gebruikt om een ​​bestaande database, tabel, index of weergave te vernietigen. Het verwijdert de volledige informatie in een tabel, evenals de tabelstructuur uit de database. Ook willen we misschien eenvoudigweg alle gegevens in een tabel verwijderen, maar zonder de tabel, en in een dergelijk scenario kunnen we de verklaring Truncate in SQL gebruiken. Truncate is ook een DDL-opdracht en elimineert alle rijen in een tabel, maar behoudt de tabeldefinitie hetzelfde voor toekomstig gebruik.

Drop-opdracht

Zoals eerder vermeld, verwijdert de opdracht Drop de tabeldefinitie en alle bijbehorende gegevens, integriteitsbeperkingen, indexen, triggers en toegangsprivileges, die op die specifieke tafel zijn gemaakt. Het verwijdert dus het bestaande object volledig uit de database en de relaties met andere tabellen zijn ook niet langer geldig na het uitvoeren van de opdracht. Ook verwijdert het alle informatie over de tabel uit het gegevenswoordenboek. Hierna volgt de typische syntaxis voor het gebruik van de Drop-instructie op een tabel.

DALINGSTAFEL

We moeten gewoon de tabelnaam vervangen die we uit de database willen verwijderen in het bovenstaande voorbeeld van de opdracht Drop.

Het is belangrijk om erop te wijzen dat de Drop-instructie niet kan worden gebruikt om een ​​tabel te verwijderen waarnaar al is verwezen door een beperking met een externe sleutel. In dat geval moet eerst de verwijzing naar de externe sleutelbeperking of die specifieke tabel worden verwijderd. Drop-instructie kan ook niet worden toegepast op de systeemtabellen in de database.

Omdat de Drop-opdracht een instructie voor automatisch vastleggen is, kan de bewerking die is geactiveerd niet meer ongedaan worden gemaakt en worden er geen triggers geactiveerd. Wanneer een tabel wordt verwijderd, zijn alle verwijzingen naar de tabel niet geldig. Als we de tabel opnieuw willen gebruiken, moet deze opnieuw worden gemaakt met alle integriteitsbeperkingen en toegangsrechten. Alle relaties met de andere tabellen moeten ook opnieuw worden gevonden.

Opdracht afbreken

De opdracht Truncate is een DDL-opdracht en verwijdert alle rijen in een tabel zonder door de gebruiker opgegeven voorwaarden en geeft de ruimte vrij die door de tabel wordt gebruikt, maar de tabelstructuur met zijn kolommen, indexen en beperkingen blijft hetzelfde. Truncate elimineert gegevens uit een tabel door de datapagina's te verwijderen die worden gebruikt om de tabelgegevens op te slaan, en alleen deze pagina-deallocaties worden bewaard in het transactielogboek. Het gebruikt dus minder transactielogboekbronnen en systeembronnen in vergelijking met andere gerelateerde SQL-opdrachten zoals Verwijderen. Dus Truncate is een beetje sneller statement dan anderen. Hierna volgt de typische syntaxis voor de opdracht Afkappen.

TRUNCATE LIJST

We moeten de tabelnaam, waaruit we alle gegevens willen verwijderen, vervangen in de bovenstaande syntaxis.

Truncate kan niet worden gebruikt op een tabel waarnaar wordt verwezen door een beperking voor een externe sleutel. Het gebruikt automatisch een commit voordat het handelt en een andere commit daarna zodat rollback van de transactie onmogelijk is en er geen triggers worden geactiveerd. Als we de tabel opnieuw willen gebruiken, hebben we alleen toegang tot de bestaande tabeldefinitie in de database.

Wat is het verschil tussen Drop en Truncate?

Zowel Drop- als Truncate-opdrachten zijn DDL-opdrachten en ook automatisch vastleggingsinstructies, zodat de transacties die met deze opdrachten worden uitgevoerd niet kunnen worden teruggedraaid.

Het primaire verschil tussen Drop en Truncate is dat de opdracht Drop niet alleen alle gegevens in een tabel verwijdert, maar ook de tabelstructuur permanent uit de database met alle verwijzingen verwijdert, terwijl de opdracht Truncate alleen alle rijen in een tabel verwijdert , en het behoudt de tabelstructuur en zijn referenties.

Als een tabel wordt verwijderd, zijn de relaties met andere tabellen niet langer geldig en worden ook de integriteitsbeperkingen en toegangsrechten verwijderd. Dus als de tabel opnieuw moet worden gebruikt, moet deze worden gereconstrueerd met de relaties, integriteitsbeperkingen en ook de toegangsprivileges. Maar als een tabel wordt afgekapt, blijven de tabelstructuur en de beperkingen ervan voor toekomstig gebruik, en dus zijn bovenstaande recreaties niet vereist voor hergebruik.

Wanneer deze opdrachten worden toegepast, moeten we voorzichtig zijn om ze te gebruiken. We moeten ook een beter begrip hebben van de aard van deze opdrachten, hoe ze werken, en ook een zorgvuldige planning voordat ze worden gebruikt om te voorkomen dat essentiële zaken ontbreken. Ten slotte kunnen beide opdrachten worden gebruikt om de databases snel en gemakkelijk op te schonen en minder bronnen te verbruiken.