Verschil tussen neerzetten en afkappen

Verschil tussen neerzetten en afkappen
Verschil tussen neerzetten en afkappen

Video: Verschil tussen neerzetten en afkappen

Video: Verschil tussen neerzetten en afkappen
Video: Wat is het verschil tussen het secundair en het hoger onderwijs? 2024, November
Anonim

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 gerelateerde SQL-instructie. Verwijderen is in dit geval niet effectief omdat het meer opslagruimte gebruikt dan Drop en Truncate.

In het geval dat we een tabel in een database met alle gegevens volledig willen weggooien, SQL stelt ons in staat om dit eenvoudig uit te voeren met behulp van de Drop-instructie. De opdracht Drop 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. Het kan ook zijn dat we alle gegevens in een tabel eenvoudig willen verwijderen, maar zonder de tabel, en in een dergelijk scenario kunnen we de Truncate-instructie in SQL gebruiken. Truncate is ook een DDL-commando en het elimineert alle rijen in een tabel, maar behoudt dezelfde tabeldefinitie voor toekomstig gebruik.

Drop-commando

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

LAAG TAFEL

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

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 externe sleutelbeperking. In dat geval moet de refererende refererende sleutelbeperking, of die specifieke tabel, eerst verwijderd worden. Het Drop-statement kan ook niet worden toegepast op de systeemtabellen in de database.

Omdat het Drop-commando een auto-commit-instructie is, kan de operatie die eenmaal is uitgevoerd niet worden teruggedraaid en worden er geen triggers geactiveerd. Wanneer een tabel wordt verwijderd, zijn alle verwijzingen naar de tabel niet geldig, en als we de tabel dus opnieuw willen gebruiken, moet deze opnieuw worden gemaakt met alle integriteitsbeperkingen en toegangsprivileges. Alle relaties met de andere tabellen, moeten ook opnieuw worden gelokaliseerd.

Beëindig commando

Truncate-opdracht is een DDL-opdracht en verwijdert alle rijen in een tabel zonder door de gebruiker gespecificeerde 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 toewijzing van de gegevenspagina's die worden gebruikt om de tabelgegevens op te slaan ongedaan te maken, en alleen deze paginadeallocaties worden bewaard in het transactielogboek. Het gebruikt dus minder transactielogboekbronnen en systeembronnen in vergelijking met andere gerelateerde SQL-opdrachten zoals Delete. Dus Truncate is een iets snellere verklaring dan andere. Hieronder volgt de typische syntaxis voor de opdracht Truncate.

TRUNCATE TABEL

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

Truncate kan niet worden gebruikt op een tabel waarnaar wordt verwezen door een externe sleutelbeperking. Het gebruikt automatisch een commit voordat het optreedt 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 nodig tot de bestaande tabeldefinitie in de database.

Wat is het verschil tussen Drop en Truncate?

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

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

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 toegangsprivileges. Maar als een tabel wordt afgekapt, blijven de tabelstructuur en zijn beperkingen voor toekomstig gebruik, en dus zijn de bovenstaande recreaties niet vereist voor hergebruik.

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

Aanbevolen: