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?

Amirhosein Heydari
źródło
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

Yalamber
źródło
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.

Sashi Kant
źródło
130

Przejdź do zakładki Sql i uruchom jedno z poniższych zapytań:

delete from tableName;

Usuń : usuwa wszystkie wiersze z tabeli. Następne wstawienie zajmie następny identyfikator automatycznego zwiększania.

lub

truncate tableName;

Obetnij : usunie również wiersze z tabeli, ale rozpocznie się od nowego wiersza z 1.

Szczegółowy blog z przykładem: http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/

Suresh Kamrushi
źródło
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.

Kod L ღ wer
źródło
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;
Gen
źródło
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
DevWL
źródło
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.

Sorin
źródło
1

napisz zapytanie: obetnij 'Your_table_name';

Shadman Sakib
źródło