Forskjell mellom drop og truncate

Anonim

Drop vs Truncate

Drop og Truncate er to SQL (Structured Query Language) setninger som brukes i Database Management Systems, hvor vi ønsker å fjerne dataposter fra en database. Både Drop og Truncate-setninger fjerner hele dataene i et bord og den relaterte SQL-setningen. Slett operasjonen er ikke effektiv i dette tilfellet fordi den bruker mer lagringsplass enn Droppe og avkorte.

I tilfelle, hvis vi ønsker å kaste bort en tabell i en database helt med alle dataene, lar SQL oss enkelt utføre dette ved hjelp av Drop-setningen. Drop-kommandoen er en DDL (Data Definition Language) -kommando, og den kan brukes til å ødelegge en eksisterende database, tabell, indeks eller visning. Den sletter hele informasjonen i et bord, samt tabellstrukturen fra databasen. Vi kan også ønske å kvitte seg med alle dataene i et bord, men uten bordet, og vi kan bruke Truncate-setning i SQL i et slikt scenario. Truncate er også en DDL-kommando, og den eliminerer alle rader i et bord, men beholder tabelldefinisjonen samme for fremtidig bruk.

Slett kommando

Som nevnt tidligere fjerner kommandoen Drop tabelldefinisjonen og alle dens data, integritetsbegrensninger, indekser, utløsere og tilgangsrettigheter, som ble opprettet på det aktuelle bordet. Så det dråper det eksisterende objektet fra databasen helt, og forholdene til andre tabeller vil heller ikke lenger være gyldige etter at kommandoen er fullført. Det fjerner også all informasjon om tabellen fra datalogg. Følgende er den typiske syntaksen for å bruke Drop-setningen på et bord.

DROP TABLE

Vi må bare erstatte tabellnavnet som vi vil fjerne fra databasen i eksemplet ovenfor av Drop-kommandoen.

Det er viktig å påpeke at Drop-setningen ikke kan brukes til å slette et bord, som allerede er referert til av en utenlandsk nøkkelbegrensning. I så fall må referanse utenlandsnøkkelbegrensning, eller det aktuelle tabellen, først slippes. Også, Drop statement kan ikke brukes på systemtabellene i databasen.

Som Drop-kommando er en automatisk begåhetserklæring, kan operasjonen en gang fyret ikke rulles tilbake, og ingen utløsere vil bli sparket. Når et bord slippes, vil alle referanser til bordet ikke være gyldige, og hvis vi vil bruke bordet på nytt, må det gjenopprettes med alle integritetsbegrensninger og tilgangsrettigheter. Alle forhold til de andre tabellene må også ligge igjen.

Truncate Command

Truncate-kommandoen er en DDL-kommando, og den fjerner alle rader i et bord uten noen brukerdefinerte betingelser, og slipper ut plassen som brukes av tabellen, men tabellstrukturen med kolonnene, indeksene og begrensningene forbli den samme.Truncate eliminerer data fra et bord ved å deallokere datasidene som brukes til å lagre tabelldata, og bare disse sidedistribusjonene blir holdt i transaksjonsloggen. Så det bruker færre transaksjonsloggressurser og systemressurser sammenlignet med andre relaterte SQL-kommandoer som Slett. Så Truncate er litt raskere setning enn andre. Følgende er den typiske syntaksen for Truncate-kommandoen.

TRUNCATE TABLE

Vi bør erstatte tabellnavnet, som vi vil fjerne hele dataene fra, i synspunktet ovenfor.

Truncate kan ikke brukes på et bord som er blitt referert av en utenlandsk nøkkelbegrensning. Den bruker en forpliktelse automatisk før den virker, og en annen begår etterpå, så tilbakelevering av transaksjonen er umulig, og ingen utløsere blir sparket. Hvis vi ønsker å gjenbruke tabellen, trenger vi bare tilgang til den eksisterende tabelldefinisjonen i databasen.

Hva er forskjellen mellom Drop og Truncate?

Både Drop og Truncate-kommandoer er DDL-kommandoer og også automatisk forpliktelser, slik at transaksjonene som utføres ved hjelp av disse kommandoene ikke kan rulles tilbake.

Den primære forskjellen mellom Drop og Truncate er at kommandoen Drop fjerner ikke bare alle dataene i et bord, men fjerner også tabellstrukturen permanent fra databasen med alle referanser, mens kommandoen Truncate bare fjerner alle rader i et bord, og det bevarer tabellstrukturen og dets referanser.

Hvis et bord blir tapt, vil forholdene til andre tabeller ikke lenger være gyldige, og integritetsbegrensninger og tilgangsrettigheter vil også bli fjernet. Så hvis bordet skal gjenbrukes, må det rekonstrueres med relasjonene, integritetsbegrensninger og også tilgangsrettighetene. Men hvis et bord blir avkortet, forblir bordstrukturen og dens begrensninger for fremtidig bruk, og det er derfor ikke nødvendig med noen av de ovennevnte rekreasjonene for gjenbruk.

Når disse kommandoene brukes, må vi være forsiktige med å bruke dem. Vi bør også ha en bedre forståelse av arten av disse kommandoene, hvordan de fungerer, og også litt forsiktig planlegging før du bruker dem for å forhindre at du mangler essensielle. Til slutt kan begge disse kommandoene brukes til å rydde opp databasene raskt og enkelt, og bruker mindre ressurser.