Verschil tussen druppel en druppel

Anonim

Drop vs Truncate

verwijderen en verkorten, zijn twee SQL (Structured Query Language) statements die worden gebruikt in Database Management Systems, waar we gegevensbestanden uit een database willen verwijderen. Beide Drop en Truncate statements verwijderen de gehele gegevens in een tabel en de bijbehorende SQL-instructie. Verwijdering operatie is in dit geval niet effectief omdat het meer opslagruimten gebruikt dan Drop en Truncate.

Als we een tabel in een database volledig willen wissen met alle gegevens, kan SQL ons dit eenvoudig uitvoeren met behulp van Drop statement. Drop command is een DDL (Data Definition Language) opdracht, en kan gebruikt worden om een ​​bestaande database, tabel, index of view te vernietigen. Het verwijdert de gehele informatie in een tabel, evenals de tabelstructuur uit de database. Ook kunnen we alle gegevens in een tabel eenvoudig verwijderen, maar zonder de tabel, en we kunnen Truncate statement gebruiken in SQL in een dergelijk scenario. Truncate is ook een DDL commando en elimineert alle rijen in een tafel, maar behoudt de tabel definitie hetzelfde voor toekomstig gebruik.

Drop command

Zoals eerder vermeld, verwijdert de opdracht Drop de tabeldefinitie en al zijn gegevens, integriteitsbeperkingen, indexen, triggers en toegangsrechten, die op die specifieke tabel werden gemaakt. Zo wordt het bestaande object volledig van de database gedaald, en de relaties met andere tabellen zullen ook niet meer geldig zijn na het uitvoeren van de opdracht. Ook verwijdert het alle informatie over de tabel uit gegevens woordenboek. Hierna volgt de typische syntaxis voor het gebruik van de Drop-verklaring op een tafel.

DROP TABLE

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

Het is belangrijk om erop te wijzen dat Drop statement niet kan worden gebruikt om een ​​tabel te verwijderen, die al door een vreemde sleutelbeperking is verwezen. In dat geval moet de verwijzende buitenlandse sleutelbeperking, of die bepaalde tabel eerst worden gedaald. Daarnaast kan Drop statement niet worden toegepast op de systeemtabellen in de database.

Als de opdracht Drop is een automatische commit-verklaring, kan de operatie eenmaal ontslagen worden, niet teruggerold worden en worden geen triggers ontslagen. Wanneer een tafel wordt gelaten, zijn alle verwijzingen naar de tabel niet geldig. Als we de tafel opnieuw willen gebruiken, moet het opnieuw worden gemaakt met alle integriteitskwesties en toegangsrechten. Alle relaties met de andere tafels moeten ook opnieuw worden geplaatst.

Truncate commando

Truncate commando is een DDL commando, en verwijdert alle rijen in een tabel zonder enige door de gebruiker opgegeven voorwaarden en geeft de ruimte die door de tabel wordt gebruikt, maar de tabelstructuur met zijn kolommen, indexen en beperkingen hetzelfde blijven.Truncate elimineert gegevens uit een tabel door de gegevenspagina's te verdelen die gebruikt worden om de tabelgegevens op te slaan, en alleen deze paginaverdelingen worden in het transactielogboek opgeslagen. Dus het maakt gebruik van minder transactie log resources en systeem resources in vergelijking met andere gerelateerde SQL commando's zoals Delete. Dus Truncate is een beetje snellere verklaring dan anderen. Hierna volgt de typische syntaxis voor Truncate commando.

TRUNCATE TABLE

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

Truncate kan niet worden gebruikt op een tafel die is verwezen door een vreemde sleutelbeperking. Het maakt gebruik van een commit automatisch voordat het handelt en een ander pleeg daarna, zodat de teruggave van de transactie onmogelijk is en geen triggers worden ontslagen. Als we de tabel opnieuw willen gebruiken, hebben we alleen toegang tot de bestaande tabeldefinitie in de database.

Wat is het verschil tussen Drop and Truncate?

Beide Drop en Truncate commando's zijn DDL commando's en ook automatisch commit statements, zodat de transacties die worden uitgevoerd met deze commando's niet teruggerold kunnen worden.

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

Als een tabel is gedaald, zijn de relaties met andere tabellen niet langer geldig, en worden ook de integriteitsbeperkingen en toegangsrechten verwijderd. Dus als de tafel moet worden hergebruikt, moet het worden gereconstrueerd met de relaties, integriteitsbeperkingen en ook de toegangsrechten. Maar als een tafel wordt afgekapt, blijven de tabelstructuur en de beperkingen voor toekomstig gebruik, en daarom zijn geen van de bovengenoemde recreaties nodig voor hergebruik.

Wanneer deze opdrachten worden toegepast, moeten we deze voorzichtig gebruiken. Ook moeten we beter inzicht hebben in de aard van deze commando's, hoe ze werken, en ook wat voorzichtige planning voordat ze worden gebruikt om te voorkomen dat essentieel ontbreekt. Tenslotte kunnen beide commando's snel en gemakkelijk de databases opruimen en minder middelen verbruiken.