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?
phpmyadmin
Amirhosein Heydari
źródło
źródło
DELETE FROM tableName
SHIFT-DEL
Odpowiedzi:
Przejdź do swojej struktury db -> i zrób puste miejsce w wymaganej tabeli. Spójrz tutaj:
źródło
Masz 2 opcje
delete
itruncate
: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.
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
.źródło
Przejdź do zakładki Sql i uruchom jedno z poniższych zapytań:
Usuń : usuwa wszystkie wiersze z tabeli. Następne wstawienie zajmie następny identyfikator automatycznego zwiększania.
lub
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/
źródło
Użyj tego zapytania:
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ż:
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.
źródło
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ć.
źródło
Operacja „Truncate tableName” zakończy się niepowodzeniem w przypadku tabeli ze zdefiniowanym ograniczeniem klucza. Nie spowoduje również ponownego zindeksowania
AUTO_INCREMENT
wartości tabeli . Zamiast tego usuń wszystkie wpisy tabeli i zresetuj indeksowanie z powrotem do 1, używając następującej składni sql:źródło
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.
źródło
napisz zapytanie: obetnij 'Your_table_name';
źródło