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?
phpmyadmin
Amirhosein Heydari
quelle
quelle
DELETE FROM tableName
SHIFT-DEL
Antworten:
Gehen Sie zu Ihrer Datenbank -> Struktur und leeren Sie sie in der gewünschten Tabelle. Siehe hier:
quelle
Sie haben 2 Möglichkeiten
delete
undtruncate
: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.
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
.quelle
Gehen Sie zur Registerkarte SQL und führen Sie eine der folgenden Abfragen aus:
Löschen : Löscht alle Zeilen aus Ihrer Tabelle. Beim nächsten Einfügen wird die nächste automatische Inkrementierungs-ID verwendet.
oder
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/
quelle
Verwenden Sie diese Abfrage:
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:
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.
quelle
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.
quelle
' 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:quelle
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.
quelle
Schreiben Sie die Abfrage: kürzen Sie 'Your_table_name';
quelle