MySQL TRUNCATE TABLE

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.