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: Zelf je raam plaatsen met Roger 2024, April
Anonim

Drop versus afkappen

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

Als we een tabel in een database met alle gegevens helemaal willen verwijderen, kunnen we dit met SQL eenvoudig uitvoeren met de Drop-instructie. Het drop-commando is een DDL-commando (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 we kunnen de Truncate-instructie in SQL in een dergelijk scenario gebruiken. Truncate is ook een DDL-commando en het verwijdert alle rijen in een tabel, maar behoudt dezelfde tabeldefinitie voor toekomstig gebruik.

Drop-opdracht

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

DROP TAFEL

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

Het is belangrijk erop te wijzen dat de Drop-instructie niet kan worden gebruikt om een tabel te verwijderen waarnaar al wordt verwezen door een externe sleutelbeperking. In dat geval moet de verwijzende externe sleutelbeperking of die specifieke tabel eerst worden verwijderd. De Drop-instructie 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 gestart 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 opnieuw willen gebruiken, moet deze opnieuw worden gemaakt met alle integriteitsbeperkingen en toegangsrechten. Alle relaties met de andere tabellen, moeten ook opnieuw worden gelokaliseerd.

Commando afkappen

De opdracht Truncate 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 verwijdert 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 deallocaties van de pagina worden bewaard in het transactielogboek. Het gebruikt dus minder transactielogboekbronnen en systeembronnen in vergelijking met andere gerelateerde SQL-opdrachten zoals Verwijderen. Truncate is dus een iets snellere verklaring dan andere. Hieronder volgt de typische syntaxis voor de opdracht Truncate.

TRUNCATE TAFEL

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

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

Wat is het verschil tussen Drop en Truncate?

Zowel de Drop- als Truncate-opdrachten zijn DDL-opdrachten en ook auto-commit-instructies, zodat de transacties die met deze opdrachten zijn 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 met alle verwijzingen verwijdert, terwijl de opdracht Truncate alleen alle rijen in een tabel verwijdert., 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 toegangsrechten. Maar als een tabel wordt afgekapt, blijven de tabelstructuur en zijn beperkingen behouden voor toekomstig gebruik, en dus zijn de bovenstaande herschepingen niet vereist voor hergebruik.

Wanneer deze commando's worden toegepast, moeten we voorzichtig zijn om ze te gebruiken. We zouden ook een beter begrip moeten 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: