Usuń wszystkie rekordy w tabeli MYSQL w phpMyAdmin


122

Używam wampserver 2.2. Kiedy chcę usunąć wszystkie rekordy tabeli w phpMyAdmin (zaznacz wszystko), usuwa tylko jeden rekord, a nie wszystkie rekordy. Dlaczego nie usuwa wszystkich rekordów?


3
zależy od zapytania, czy wykonałeś to w ten sposób? DELETE FROM tableName
John Woo,

Podświetl nazwę stołu i naciśnijSHIFT-DEL
DevlshOne

Odpowiedzi:


130

Przejdź do swojej struktury db -> i zrób puste miejsce w wymaganej tabeli. Spójrz tutaj:

ten zrzut ekranu


167

Masz 2 opcje deletei truncate:

  1. delete from mytable

    Spowoduje to usunięcie całej zawartości tabeli, bez resetowania identyfikatora autoinkrementalnego, ten proces jest bardzo powolny. Jeśli chcesz usunąć określone rekordy, dodaj na końcu klauzulę where.

  2. truncate myTable

    Spowoduje to zresetowanie tabeli, tj. Wszystkie pola automatycznego przyrostu zostaną zresetowane. Jest to DDL i jest bardzo szybki. Nie możesz usunąć żadnego konkretnego rekordu za pośrednictwem truncate.



27

Użyj tego zapytania:

DELETE FROM tableName;

Uwaga: Aby usunąć określony rekord, możesz również podać warunek w klauzuli where w zapytaniu.

LUB możesz użyć tego zapytania również:

truncate tableName;

Pamiętaj również, że nie powinieneś mieć żadnego związku z innym stołem. Jeśli w tabeli będzie ograniczenie związane z kluczem obcym, to te rekordy nie zostaną usunięte i zwróci błąd.


19

Możesz usunąć wszystkie wiersze za pomocą tego polecenia, ale pamiętaj o jednej rzeczy, że po uruchomieniu polecenia obcięcia nie można go wycofać.

  truncate tableName;

11

Operacja „Truncate tableName” zakończy się niepowodzeniem w przypadku tabeli ze zdefiniowanym ograniczeniem klucza. Nie spowoduje również ponownego zindeksowania AUTO_INCREMENTwartości tabeli . Zamiast tego usuń wszystkie wpisy tabeli i zresetuj indeksowanie z powrotem do 1, używając następującej składni sql:

DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1

4

Ciekawy fakt.

Byłem pewien, że TRUNCATE zawsze będzie działać lepiej, ale w moim przypadku dla bazy danych z około 30 tabelami z obcymi kluczami, wypełnionymi tylko kilkoma wierszami, TRUNCATE wszystkich tabel zajęło około 12 sekund, w przeciwieństwie do zaledwie kilkuset milisekund aby usunąć wiersze. Ustawienie automatycznego przyrostu dodaje łącznie około sekundy, ale nadal jest dużo lepsze.

Sugerowałbym więc wypróbowanie obu, zobacz, które działa szybciej w twoim przypadku.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.