Forskellen Mellem Drop Og Trunkering

Forskellen Mellem Drop Og Trunkering
Forskellen Mellem Drop Og Trunkering

Video: Forskellen Mellem Drop Og Trunkering

Video: Forskellen Mellem Drop Og Trunkering
Video: Scratch 2024, April
Anonim

Drop vs Truncate

Drop og Truncate er to SQL-sætninger (Structured Query Language), der bruges i Database Management Systems, hvor vi ønsker at fjerne dataposter fra en database. Både Drop- og Truncate-udsagn fjerner hele dataene i en tabel og den relaterede SQL-sætning. Sletning er ikke effektiv i dette tilfælde, fordi den bruger flere lagerpladser end Drop and Truncate.

Hvis vi i det hele taget ønsker at kassere en tabel i en database med alle dens data, giver SQL os mulighed for let at udføre dette ved hjælp af Drop-sætning. Drop-kommando er en DDL-kommando (Data Definition Language), og den kan bruges til at ødelægge en eksisterende database, tabel, indeks eller visning. Det sletter hele informationen i en tabel såvel som tabelstrukturen fra databasen. Vi ønsker muligvis også at slippe af med alle data i en tabel, men uden tabellen, og vi kan bruge Truncate-sætning i SQL i et sådant scenario. Truncate er også en DDL-kommando, og den fjerner alle rækkerne i en tabel, men bevarer tabeldefinitionen den samme til fremtidig brug.

Drop kommando

Som tidligere nævnt fjerner Drop-kommandoen tabeldefinitionen og alle dens data, integritetsbegrænsninger, indekser, udløsere og adgangsrettigheder, som blev oprettet på den pågældende tabel. Så det slipper det eksisterende objekt helt fra databasen, og forholdet til andre tabeller er heller ikke længere gyldigt efter udførelse af kommandoen. Det fjerner også al information om tabellen fra dataordbogen. Følgende er den typiske syntaks til brug af Drop-sætningen på et bord.

DROPTABEL

Vi skal blot erstatte det tabelnavn, som vi vil fjerne fra databasen, i ovenstående eksempel på Drop-kommandoen.

Det er vigtigt at påpege, at Drop-sætning ikke kan bruges til at slette en tabel, som der allerede er henvist til med en fremmed nøglebegrænsning. I så fald skal den henvisning til fremmed nøglebegrænsning eller den pågældende tabel først droppes. Drop-sætning kan heller ikke anvendes på systemtabellerne i databasen.

Da Drop-kommandoen er en erklæring om automatisk forpligtelse, kan operationen, når den først er fyret, ikke rulles tilbage, og der udløses ingen udløsere. Når en tabel droppes, er alle referencer til tabellen ikke gyldige, og hvis vi vil bruge tabellen igen, skal den genskabes med alle integritetsbegrænsninger og adgangsrettigheder. Alle forhold til de andre tabeller skal også placeres igen.

Afkort kommando

Truncate-kommando er en DDL-kommando, og den fjerner alle rækkerne i en tabel uden nogen brugerspecificerede betingelser og frigiver det rum, der bruges af tabellen, men tabelstrukturen med dens kolonner, indekser og begrænsninger forbliver den samme. Truncate eliminerer data fra en tabel ved at omplacere de datasider, der bruges til at gemme tabeldataene, og kun disse sideaftaler placeres i transaktionsloggen. Så det bruger færre transaktionslogressourcer og systemressourcer sammenlignet med andre relaterede SQL-kommandoer som Slet. Så Truncate er en lidt hurtigere erklæring end andre. Følgende er den typiske syntaks for Truncate-kommando.

TRUNCATE TABLE

Vi skal erstatte tabelnavnet, hvorfra vi vil fjerne hele dataene, i ovenstående syntaks.

Afkortning kan ikke bruges på en tabel, der er blevet henvist til med en fremmed nøglebegrænsning. Det bruger en forpligtelse automatisk, før den handler, og en anden forpligtelse bagefter, så tilbageførsel af transaktionen er umulig, og der udløses ingen udløsere. Hvis vi vil genbruge tabellen, behøver vi kun få adgang til den eksisterende tabeldefinition i databasen.

Hvad er forskellen mellem Drop og Truncate?

Både Drop- og Truncate-kommandoer er DDL-kommandoer og også auto-bindende udsagn, så de transaktioner, der udføres ved hjælp af disse kommandoer, ikke kan rulles tilbage.

Den primære forskel mellem Drop og Truncate er, at Drop-kommandoen fjerner, ikke kun alle data i en tabel, men også at den fjerner tabelstrukturen permanent fra databasen med alle referencer, mens Truncate-kommandoen kun fjerner alle rækkerne i en tabel, og det bevarer bordstrukturen og dens referencer.

Hvis en tabel droppes, er forholdet til andre tabeller ikke længere gyldig, og integritetsbegrænsninger og adgangsrettigheder fjernes også. Så hvis det kræves, at bordet genbruges, skal det rekonstrueres med forholdet, integritetsbegrænsninger og også adgangsrettighederne. Men hvis en tabel er afkortet, forbliver tabelstrukturen og dens begrænsninger til fremtidig brug, og det er derfor ikke nødvendigt med nogen af ovenstående gendannelser til genbrug.

Når disse kommandoer anvendes, skal vi være forsigtige med at bruge dem. Vi bør også have en bedre forståelse af karakteren af disse kommandoer, hvordan de fungerer, og også en omhyggelig planlægning, inden vi bruger dem for at forhindre manglende væsentlige ting. Endelig kan begge disse kommandoer bruges til at rydde op i databaser hurtigt og nemt og forbruge færre ressourcer.

Anbefalet: