Summary: I denne vejledning lærer du, hvordan du bruger MySQL TRUNCATE TABLE-anvisningen til at slette alle data i en tabel.
Indledning til MySQL TRUNCATE TABLE-anvisningen
Med MySQL TRUNCATE TABLE-anvisningen kan du slette alle data i en tabel.
Logisk set er TRUNCATE TABLE-anvisningen som en DELETE-anvisning uden en WHERE-klausul, der sletter alle rækker fra en tabel, eller en sekvens af DROP TABLE– og CREATE TABLE-anvisninger.
Den TRUNCATE TABLE-anvisning er imidlertid mere effektiv end DELETE-anvisningen, fordi den sletter og genskaber tabellen i stedet for at slette rækker en efter en.
Her er den grundlæggende syntaks for TRUNCATE TABLE-erklæringen:
Code language: SQL (Structured Query Language) (sql)
I denne syntaks angiver du navnet på den tabel, som du ønsker at fjerne alle data efter TRUNCATE TABLE-keywords.
Tyckelordet TABLE er valgfrit. Det er dog en god praksis at bruge nøgleordet TABLE for at skelne mellem TRUNCATE TABLE-anvisningen og TRUNCATE()-funktionen.
Hvis der er FOREIGN KEY-begrænsninger fra andre tabeller, der refererer til den tabel, som du afkorter, vil TRUNCATE TABLE-anvisningen mislykkes.
Da en truncate-operation forårsager en implicit commit, kan den derfor ikke rulles tilbage.
Den TRUNCATE TABLE-anvisning nulstiller værdien i AUTO_INCREMENT-kolonnen til dens startværdi, hvis tabellen har en AUTO_INCREMENT-kolonne.
Den TRUNCATE TABLE-anvisning udløser ikke DELETE-udløsere, der er tilknyttet den tabel, der trunkeres.
I modsætning til en DELETE-anvisning er antallet af rækker, der påvirkes af TRUNCATE TABLE-anvisningen, 0, hvilket skal fortolkes som ingen oplysninger.
MySQL TRUNCATE TABLE eksempel
Lad os tage et eksempel på brug af TRUNCATE TABLE-erklæringen.
Først skal du oprette en ny tabel ved navn books til demonstrationen:
Code language: SQL (Structured Query Language) (sql)
Næst skal du indsætte dummy-data til books-tabellen ved hjælp af følgende lagrede procedure:
Code language: SQL (Structured Query Language) (sql)
Dernæst skal du indlæse 10.000 rækker i books-tabellen. Det vil tage et stykke tid.
Code language: SQL (Structured Query Language) (sql)
Dernæst skal du kontrollere dataene i books-tabellen:
Code language: SQL (Structured Query Language) (sql)
Sluttelig skal du bruge TRUNCATE TABLE-anvisningen til at slette alle rækker fra books-tabellen:
Code language: SQL (Structured Query Language) (sql)
Bemærk, at du kan sammenligne ydelsen mellem TRUNCATE TABLE og DELETE-anvisningen.
I denne vejledning har du lært, hvordan du bruger MySQL TRUNCATE TABLE-anvisningen til at slette alle data fra en tabel effektivt, især for en stor tabel.
- Blev denne vejledning brugt?
- JaNej