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