Verschil tussen Drop en Truncate

Drop vs Truncate

Drop en Truncate zijn twee SQL-instructies (Structured Query Language) die worden gebruikt in databasebeheersystemen, waar we gegevensrecords uit een database willen verwijderen. Zowel Drop- als Truncate-instructies verwijderen de volledige gegevens in een tabel en de bijbehorende SQL-instructie. De verwijderbewerking is in dit geval niet effectief omdat er meer opslagruimten worden gebruikt dan Drop en Truncate.

Als we een tabel in een database helemaal willen weggooien met alle gegevens, kunnen we dit met SQL eenvoudig uitvoeren met de instructie Drop. 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. We willen misschien ook alle gegevens in een tabel verwijderen, maar dan zonder de tabel, en we kunnen de instructie Truncate in SQL in een dergelijk scenario gebruiken. Truncate is ook een DDL-opdracht en elimineert alle rijen in een tabel, maar behoudt de tabeldefinitie hetzelfde voor toekomstig gebruik.

Drop commando

Zoals eerder vermeld, verwijdert de opdracht Drop de tabeldefinitie en alle bijbehorende gegevens, integriteitsbeperkingen, indexen, triggers en toegangsprivileges die in die specifieke tabel zijn gemaakt. Dus het laat het bestaande object volledig uit de database vallen en de relaties met andere tabellen zijn ook niet meer geldig na het uitvoeren van de opdracht. Ook verwijdert het alle informatie over de tabel uit datadictionary. Hierna volgt de typische syntaxis voor het gebruik van de instructie Drop in een tabel.

SLIJPSTABEL

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 Drop-instructie niet kan worden gebruikt om een ​​tabel te verwijderen, waarnaar al is verwezen door een externe-sleutelbeperking. In dat geval moet de externe referentiesleutelbeperking of die specifieke tabel als eerste worden verwijderd. Drop-instructie kan ook niet worden toegepast op de systeemtabellen in de database.

Omdat de opdracht Drop een automatische commit-instructie is, kan de bewerking die eenmaal is gestart niet worden teruggedraaid 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 gelokaliseerd.

Truncate-opdracht

Truncate-opdracht 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 de kolommen, indexen en beperkingen blijft hetzelfde. Met Truncate worden gegevens uit een tabel verwijderd door de gegevenspagina's die worden gebruikt voor het opslaan van de tabelgegevens, te verwijderen en alleen deze paginaverwijzingen 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 iets snellere verklaring dan andere. Hierna volgt de typische syntaxis voor de opdracht Truncate.

AFHANDELINGSTAFEL

We moeten de tabelnaam, waarvan we de volledige gegevens willen verwijderen, vervangen door de bovenstaande syntaxis.

Truncate kan niet worden gebruikt in een tabel waarnaar is verwezen met een externe sleutelbeperking. Het gebruikt een commit automatisch voordat het werkt en een andere commit daarna, zodat het terugdraaien 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?

Beide Drop en Truncate-commando's zijn DDL-opdrachten en ook automatische commit-instructies, zodat de transacties die met deze opdrachten worden uitgevoerd, niet kunnen worden teruggedraaid.

Het belangrijkste 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 verwijdert met alle referenties, 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 de integriteitsbeperkingen en toegangsrechten ook verwijderd. Dus als de tabel opnieuw moet worden gebruikt, moet deze worden gereconstrueerd met de relaties, integriteitsbeperkingen en ook de toegangsrechten. Maar als een tabel wordt afgekapt, blijven de tabelstructuur en de bijbehorende beperkingen voor toekomstig gebruik en daarom zijn bovenstaande recreaties niet vereist voor hergebruik.

Wanneer deze opdrachten worden toegepast, moeten we voorzichtig zijn om ze te gebruiken. Ook moeten we 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, waardoor er minder resources worden verbruikt.