Två metoder finns i SQL till tomma databastabeller . En är " DELETE " -funktionen och den andra är " STYMPA . " Både bevara integriteten i tabellen den töms , men var och skiljer sig i de mekanismer som används för att ta bort poster , särskilt med avseende på arbetssätt , dataräddning , snabbhet och resursanvändning . "Delete " -funktionen är kategoriserad som en data manipulation språk ( DML ) funktionen medan " TRUNCATE " tillhör familjen av funktioner som hanterar uppgifter definition språk ( DDL ) . Driftslägen
" TRUNCATE " operation är en allt- eller - inget tillvägagångssätt som deallokerar diskutrymme reserverat för data i tabellen . Operationen tar bort även referenser till index . Data fortsätter att existera i tabellen tills den skrivs över med nya data . Omvänt , avlägsnar " DELETE " operation en post i taget , registrering av uppgifter om varje post i ett affärsbeslut loggen innan de tas bort . "Delete " operation kräver att transaktionen begås , medan en " TRUNCATE " implicit begår transaktionen . En " DELETE " uttalande gör också att användaren villkorligt bort poster som uppfyller en vissa kriterier . Addera Data Recovery
A " TRUNCATE " operation tar bort data från en bord utan att spara någon rollback information. När kommandot utförs , är återhämtningen inte möjligt om det utrymme som tidigare tilldelats data har skrivits över med nya data . Omvänt kan rollback till en tidigare tillstånd i en " DELETE " operation uppstå eftersom varje post har åtagit sig att avvecklingen tabellutrymme före dess avlägsnande . Saknade uppgifter kan sedan utvinnas från rollback loggar , förutsatt loggar fortfarande existerar .
Hastighet och Resursanvändning
" TRUNCATE " operation är en höghastighetståg raderingen som kräver lite databasen resurser på grund av läget i den utför de allt -eller-inget -funktioner delete . "Delete" operationer på stora datamängder , å andra sidan , kan ta lång tid på grund av frågan om inspelning en rad i taget i avvecklingen tabellutrymme . Som ett resultat , kan den fysiska storleken på de inblandade tabellerna ballong före bortförandet av posterna krympa bordet tillbaka till en acceptabel storlek .
Undantag när referensregler
" , stympa " operationer kan bara ske om alla främmande nycklar tas bort eller inaktiveras före dess genomförande . Samma regel gäller för " DELETE " operationer . Detta beror på att regeln införts på databaser för att definiera primära och främmande nycklar relationer och som anger att " ingen främmande nyckel ska dingla . " Därför kommer " TRUNCATE " och "Delete " operationer misslyckas om det finns en primärnyckel /sekundärnyckelbegränsningen på plats .