Löschen Sie alle Datensätze in einer MYSQL-Tabelle in phpMyAdmin

121

Ich benutze wampserver 2.2. Wenn ich alle Datensätze einer Tabelle in phpMyAdmin löschen möchte (alle auswählen), werden nur ein Datensatz und nicht alle Datensätze gelöscht. Warum werden nicht alle Datensätze gelöscht?

Amirhosein Heydari
quelle
3
hängt von Ihrer Anfrage ab, haben Sie so ausgeführt? DELETE FROM tableName
John Woo
SHIFT-DEL
Markieren Sie

Antworten:

129

Gehen Sie zu Ihrer Datenbank -> Struktur und leeren Sie sie in der gewünschten Tabelle. Siehe hier:

Dieser Screenshot

Yalamber
quelle
166

Sie haben 2 Möglichkeiten deleteund truncate:

  1. delete from mytable

    Dadurch wird der gesamte Inhalt der Tabelle gelöscht, ohne dass die automatisch inkrementelle ID zurückgesetzt wird. Dieser Vorgang ist sehr langsam. Wenn Sie bestimmte Datensätze löschen möchten, fügen Sie am Ende eine where-Klausel hinzu.

  2. truncate myTable

    Dadurch wird die Tabelle zurückgesetzt, dh alle automatisch inkrementellen Felder werden zurückgesetzt. Es ist eine DDL und es ist sehr schnell. Sie können keinen bestimmten Datensatz durch löschen truncate.

Sashi Kant
quelle
129

Gehen Sie zur Registerkarte SQL und führen Sie eine der folgenden Abfragen aus:

delete from tableName;

Löschen : Löscht alle Zeilen aus Ihrer Tabelle. Beim nächsten Einfügen wird die nächste automatische Inkrementierungs-ID verwendet.

oder

truncate tableName;

Abschneiden : Löscht auch die Zeilen aus Ihrer Tabelle, beginnt jedoch mit einer neuen Zeile mit 1.

Ein detaillierter Blog mit Beispiel: http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/

Suresh Kamrushi
quelle
27

Verwenden Sie diese Abfrage:

DELETE FROM tableName;

Hinweis: Um einen bestimmten Datensatz zu löschen, können Sie die Bedingung in der where-Klausel auch in der Abfrage angeben.

ODER Sie können diese Abfrage auch verwenden:

truncate tableName;

Denken Sie auch daran, dass Sie keine Beziehung zu einer anderen Tabelle haben sollten. Wenn die Tabelle eine Fremdschlüsseleinschränkung enthält, werden diese Datensätze nicht gelöscht und geben den Fehler aus.

Code L ღ ver
quelle
19

Sie können alle Zeilen mit diesem Befehl löschen. Beachten Sie jedoch, dass Sie den Befehl zum Abschneiden nach dem Ausführen nicht mehr zurücksetzen können.

  truncate tableName;
Gen.
quelle
11

' Tabellenname abschneiden' schlägt für eine Tabelle mit definierter Schlüsseleinschränkung fehl . Der Tabellenwert wird auch nicht neu indiziert AUTO_INCREMENT. Löschen Sie stattdessen alle Tabelleneinträge und setzen Sie die Indizierung mit dieser SQL-Syntax auf 1 zurück:

DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1
DevWL
quelle
4

Ein interessanter Fakt.

Ich war mir sicher, dass TRUNCATE immer eine bessere Leistung erzielen wird, aber in meinem Fall dauerte es für eine Datenbank mit ca. 30 Tabellen mit Fremdschlüsseln, die nur wenige Zeilen enthält, ungefähr 12 Sekunden, um alle Tabellen zu TRUNCIEREN, im Gegensatz zu nur einigen hundert Millisekunden um die Zeilen zu löschen. Durch Einstellen des automatischen Inkrements wird insgesamt etwa eine Sekunde hinzugefügt, aber es ist immer noch viel besser.

Daher würde ich vorschlagen, beide zu versuchen und herauszufinden, welche für Ihren Fall schneller funktioniert.

Sorin
quelle
1

Schreiben Sie die Abfrage: kürzen Sie 'Your_table_name';

Shadman Sakib
quelle