Forskel Mellem drop og truncate

Anonim

Drop vs Truncate

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

Hvis vi ønsker at kassere en tabel i en database helt sammen med sine alle data, tillader SQL os det nemt at udføre dette ved hjælp af Drop statement. Drop kommandoen er en DDL (Data Definition Language) kommando, og den kan bruges til at ødelægge en eksisterende database, tabel, indeks eller visning. Det sletter hele informationen i en tabel samt bordstrukturen fra databasen. Vi kan også ønske at slippe af med alle dataene i en tabel simpelthen, men uden tabellen, og vi kan bruge Truncate statement i SQL i et sådant scenario. Truncate er også en DDL-kommando, og det eliminerer alle rækkerne i et bord, men bevarer tabeldefinitionen samme til fremtidig brug.

Slet kommando

Som tidligere nævnt fjerner kommandoen Drop tabeldefinitionen og alle dens data, integritetsbegrænsninger, indekser, udløsere og adgangsrettigheder, som blev oprettet på det pågældende bord. Så det dråber det eksisterende objekt helt fra databasen, og relationerne til andre tabeller vil heller ikke længere være gyldige, når kommandoen er udført. Det fjerner også alle oplysninger om tabellen fra datalogi. Følgende er den typiske syntaks for at bruge drop-sætningen på et bord.

DROP TABLE

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

Det er vigtigt at påpege, at Drop statement ikke kan bruges til at slette en tabel, som allerede er blevet refereret af en udenlandsk nøglebegrænsning. I så fald skal den refererende udenlandske nøglebegrænsning eller den pågældende tabel først slippes. Desuden kan Drop statement ikke anvendes på systemtabellerne i databasen.

Som Drop-kommando er en automatisk commit-erklæring, kan operationen en gang fyret ikke rulles tilbage, og ingen udløsere vil blive fyret. Når et bord er tabt, er alle referencer til bordet ikke gyldige, og hvis vi vil bruge bordet igen, skal det genskabes med alle integritetsmæssige begrænsninger og adgangsrettigheder. Alle forhold til de andre tabeller skal også være placeret igen.

Truncate command

Truncate kommando er en DDL-kommando, og den fjerner alle rækker i en tabel uden nogen brugerspecificerede betingelser og frigiver det rum, der benyttes af tabellen, men bordstrukturen med dens kolonner, indekser og begrænsninger forblive ens.Truncate eliminerer data fra en tabel ved at deallokere datasiderne, der bruges til at gemme tabeldataene, og kun disse sidedokeringer bevares i transaktionsloggen. Så det bruger færre transaktionslog ressourcer og system ressourcer i forhold til andre relaterede SQL kommandoer som Slet. Så Truncate er en smule 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 data, i ovenstående syntaks.

Truncate kan ikke bruges på et bord, der er blevet refereret af en fremmed nøglebegrænsning. Den bruger en commit automatisk, før den virker, og en anden begå bagefter, så tilbagelevering af transaktionen er umulig, og ingen udløsere er fyret. Hvis vi vil genbruge bordet, behøver vi kun 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å automatisk commit-sætninger, så de transaktioner, der udføres ved hjælp af disse kommandoer, kan ikke rulles tilbage.

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

Hvis en tabel er droppet, vil forholdene til andre tabeller ikke længere være gyldige, og integritetsbegrænsningerne og adgangsrettighederne vil også blive fjernet. Så hvis bordet skal genbruges, skal det rekonstrueres med relationerne, integritetsbegrænsningerne og også adgangsrettighederne. Men hvis et bord er afkortet, forbliver bordstrukturen og dens begrænsninger til fremtidig brug, og derfor er nogen af ​​de ovennævnte rekreationer ikke nødvendige 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 arten af ​​disse kommandoer, hvordan de virker, og også en del omhyggelig planlægning, før de bruges til at forhindre manglende essentielle. Endelig kan begge disse kommandoer bruges til at rydde op databaserne hurtigt og nemt og forbruge færre ressourcer.