Skillnaden mellan droppe och trunkera

Anonim

Släpp vs Truncate

Släpp och Truncate är två SQL-formuleringar (Structured Query Language) som används i Database Management Systems, där vi vill ta bort dataposter från en databas. Både Drop och Truncate-satser tar bort hela data i en tabell och det relaterade SQL-satsen. Ta bort funktionen är inte effektiv i det här fallet eftersom det använder mer lagringsutrymmen än Drop och Truncate.

Om vi ​​vill slänga en tabell i en databas helt och hållet med alla data, gör det möjligt för SQL att enkelt utföra detta med hjälp av Drop statement. Slagkommandot är ett DDL-kommando (Data Definition Language), och det kan användas för att förstöra en befintlig databas, tabell, index eller vy. Den raderar hela informationen i en tabell, såväl som tabellstrukturen från databasen. Vi kan också önska att bli av med alla data i ett bord helt enkelt, men utan tabellen, och vi kan använda Truncate statement i SQL i ett sådant scenario. Truncate är också ett DDL-kommando och det eliminerar alla rader i ett bord men bevarar tabelldefinitionen samma för framtida användning.

Släppkommando

Som tidigare nämnts, tar bort kommandot bort tabeldetaljer och alla dess data, integritetsbegränsningar, index, utlösare och åtkomstbehörigheter som skapades på det aktuella tabellen. Så det släpper det befintliga objektet från databasen helt och relationerna till andra tabeller kommer inte längre att gälla efter att kommandot har körts. Dessutom tar den bort all information om tabellen från datalogik. Följande är den typiska syntaxen för att använda Drop-satsen på ett bord.

DROP TABLE

Vi måste helt enkelt byta tabellnamnet som vi vill ta bort från databasen i ovanstående exempel på Drop-kommandot.

Det är viktigt att påpeka att Drop-satsen inte kan användas för att radera ett bord, vilket redan har refererats av en utländsk nyckelbegränsning. I det fallet måste den främmande nyckelbegränsningen eller den särskilda tabellen avvisas först. Också, Drop statement kan inte tillämpas på system tabeller i databasen.

Som Drop-kommandot är ett automatiskt commit-uttalande, kan operationen en gång skjutas inte rulla tillbaka och inga utlösare kommer att avfyras. När ett bord släpps är alla referenser till bordet inte giltiga, och så, om vi vill använda bordet igen, måste det återskapas med alla integritetsbegränsningar och åtkomstbehörigheter. Alla relationer till de andra tabellerna måste också ligga igen.

Truncate Command

Kommandot Truncate är ett DDL-kommando och det tar bort alla rader i en tabell utan några användardefinierade villkor och släpper ut det utrymme som används av tabellen men tabellstrukturen med dess kolumner, index och begränsningar förbli samma.Truncate eliminerar data från ett bord genom att deallokera datasidorna som används för att lagra tabelldata, och endast dessa sidallokeringar lagras i transaktionsloggen. Så det utnyttjar färre transaktionsloggresurser och systemresurser jämfört med andra relaterade SQL-kommandon som Delete. Så Truncate är lite snabbare uttalande än andra. Följande är den typiska syntaxen för Truncate-kommandot.

TRUNCATE TABLE

Vi ska ersätta tabellnamnet, från vilket vi vill ta bort hela data, i ovanstående syntax.

Truncate kan inte användas på ett bord som har refererats av en främmande nyckelbegränsning. Den använder sig av en förbindelse automatiskt innan den agerar och en annan förbindelse efteråt, så återgången till transaktionen är omöjlig, och inga utlösare avfyras. Om vi ​​vill återanvända tabellen behöver vi bara komma åt den befintliga tabelldefinitionen i databasen.

Vad är skillnaden mellan Drop och Truncate?

Både Dropp och Trunkate-kommandon är DDL-kommandon och även autofullförklaringar så att transaktionerna som utförs med dessa kommandon inte kan rullas tillbaka.

Den primära skillnaden mellan Drop och Truncate är att kommandot Droppar inte bara alla data i en tabell utan tar också bort tabellstrukturen permanent från databasen med alla referenser, medan kommandot Truncate bara tar bort alla rader i ett bord, och det bevarar bordstrukturen och dess referenser.

Om en tabell tappas, är relationerna till andra tabeller inte längre giltiga, och integritetsbegränsningarna och åtkomstbehörigheterna kommer också att tas bort. Så om bordet måste återanvändas måste det rekonstrueras med relationerna, integritetsbegränsningarna och även åtkomstbehörigheterna. Men om ett bord trunkeras, fortsätter bordstrukturen och dess begränsningar för framtida bruk, och det är därför inte nödvändigt att återanvända någon av ovanstående rekreationer.

När dessa kommandon tillämpas måste vi vara försiktiga att använda dem. Vi borde också få en bättre förståelse för dessa kommandos natur, hur de fungerar, och också noggrann planering innan de används för att förhindra att saknas väsentliga. Slutligen kan båda kommandona användas för att snabbt och enkelt rensa databaserna och konsumera färre resurser.