Heim  >  Artikel  >  Datenbank  >  Eine kurze Diskussion über die beiden Methoden und Unterschiede beim Löschen von Tabellendaten in MySQL

Eine kurze Diskussion über die beiden Methoden und Unterschiede beim Löschen von Tabellendaten in MySQL

青灯夜游
青灯夜游nach vorne
2019-11-27 17:43:212729Durchsuche

Eine kurze Diskussion über die beiden Methoden und Unterschiede beim Löschen von Tabellendaten in MySQL

Es gibt zwei Möglichkeiten, Daten in MySQL zu löschen:

1, truncate (Trunkierung) ist eine grobe Art der Löschung

2. deleteVerfeinertes Löschen

Löschvorgang

Wenn Sie alle Daten in der Tabelle löschen müssen, stehen die folgenden beiden zur Verfügung :

delete from tablename;
truncate table tablename;

Und wenn Sie nur einen Teil der Daten löschen, können Sie nur delete verwenden:

delete from tablename where case1 and case2;

Differenz

Beim detaillierten Löschen eines Teils der Daten kann nur delete verwendet werden.

Beim Löschen aller Tabellendaten ist beides möglich. Derzeit gibt es bestimmte Unterschiede zwischen den beiden Methoden:

1. Rückgabewert

truncateDer Rückgabewert ist 0 und delete gibt die Anzahl der gelöschten Datensätze zurück

mysql> truncate serviceHost;
Query OK, 0 rows affected (0.04 sec)
mysql> delete from serviceHost where creator='test';
Query OK, 4 rows affected (0.01 sec)

2. Feld automatisch inkrementieren

Wenn vorhanden Bei Feldern mit automatischer Inkrementierung wird truncate auf 1 zurückgesetzt und delete behält den Maximalwert für die automatische Inkrementierung bei.

3. Ausführungseffizienz

truncateDas Nichtscannen der Tabelle ist gleichbedeutend damit, die Tabelle neu zu erstellen, nur die Struktur der Tabelle beizubehalten und sie dann zu löschen Originaltisch. Sehr effizient.
delete scannt die gesamte Tabelle und trifft eine Beurteilung basierend auf der where-Anweisung, sodass die Effizienz gering ist.

4. Betriebsprotokoll

truncateWenn das Serverprotokoll nicht geschrieben wird, kann es nicht wiederhergestellt werden.
delete schreibt Serverprotokolle.

5. Auslöser

truncate aktiviert den Auslöser nicht, delete aktiviert den Auslöser.

Empfohlenes Lernen: MySQL-Tutorial

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über die beiden Methoden und Unterschiede beim Löschen von Tabellendaten in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen