In diesem Artikel werden hauptsächlich die Unterschiede zwischen den SQL-Löschanweisungen DROP, TRUNCATE und DELETE vorgestellt, damit Sie SQL-Anweisungen besser verstehen und lernen können. Interessierte Freunde können mehr darüber erfahren. FALLEN: DROP TABLE-Test; Löschen Sie die Testtabelle und geben Sie Speicherplatz frei, indem Sie alle Daten in der Testtabelle löschen. KÜRZEN: TRUNCATE-Test; Löschen Sie den Inhalt der Testtabelle und geben Sie Speicherplatz frei. Löschen Sie jedoch nicht die Tabellendefinition. Die Tabellenstruktur bleibt erhalten. LÖSCHEN: 1. Bestimmte Daten löschen Löschen Sie in der Testtabelle die Daten, deren Alter 30 Jahre beträgt und deren Herkunftsland die USA ist LÖSCHEN AUS Test, wobei Alter=30 UND Land='USA'; 2. Löschen Sie die gesamte Tabelle Löschen Sie den gesamten Inhalt der Testtabelle, behalten Sie die Tabellendefinition bei und geben Sie keinen Speicherplatz frei. DELETE FROM-Test oder TRUNCATE-Test; Der Befehl „truncate table“ löscht schnell alle Datensätze in einer Tabelle, behält aber die Tabellenstruktur bei. Dieses schnelle Löschen unterscheidet sich vom Befehl „Aus Tabelle löschen“, der alle Tabellendatensätze löscht. Die mit dem Befehl „Löschen“ gelöschten Daten werden im Rollback-Segment des Systems gespeichert. Bei Bedarf können die Daten zurückgesetzt und wiederhergestellt werden, während die mit dem Befehl „Truncate“ gelöschten Daten nicht wiederhergestellt werden können. Ähnlichkeiten Durch Abschneiden, Löschen ohne Where-Klausel und Löschen werden Daten in der Tabelle gelöscht. Unterschiede: 1. Mit „Truncate and Delete“ werden nur die Daten gelöscht, nicht aber die Tabellenstruktur (Definition). Die Drop-Anweisung löscht die Constraints, Trigger und Indizes, von denen die Tabellenstruktur abhängt; die gespeicherten Prozeduren/Funktionen, die von der Tabelle abhängen, bleiben erhalten, werden aber ungültig. 2. Die Löschanweisung ist eine DML-Anweisung. Dieser Vorgang wird im Rollback-Segment platziert und wird erst wirksam, nachdem die Transaktion festgeschrieben wurde. Wenn ein entsprechender Trigger vorhanden ist, wird er bei der Ausführung ausgelöst. Truncate und Drop sind DDL-Operationen. Die Operation wird sofort wirksam. Die Originaldaten werden nicht in das Rollback-Segment eingefügt und können nicht zurückgesetzt werden. Der Vorgang löst den Trigger nicht aus. 3. Die Löschanweisung hat keinen Einfluss auf den von der Tabelle belegten Umfang und die Hochwassermarke verbleibt an ihrer ursprünglichen Position. Offensichtlich gibt die Drop-Anweisung den gesamten von der Tabelle belegten Speicherplatz frei. Standardmäßig gibt die Truncate-Anweisung Speicherplatz für Minextents-Extents frei, sofern kein wiederverwendeter Speicher verwendet wird. Truncate setzt die Obergrenze zurück (auf den Anfang). 4. Geschwindigkeit: Generell gilt: löschen > abschneiden > löschen. 5. Sicherheit: Verwenden Sie Drop und Truncate mit Vorsicht, insbesondere wenn kein Backup vorhanden ist. Sonst ist es zu spät zum Weinen. Wenn Sie einige Datenzeilen löschen möchten, verwenden Sie „delete“ und achten Sie darauf, die Where-Klausel einzuschließen. Das Rollback-Segment muss groß genug sein. Wenn Sie eine Tabelle löschen möchten, verwenden Sie natürlich „drop“. Sie möchten die Tabelle behalten, aber alle Daten löschen. Wenn es nicht mit der Transaktion zusammenhängt, verwenden Sie einfach „truncate“. Wenn es sich um eine Transaktion handelt oder Sie einen Auslöser auslösen möchten, verwenden Sie „Löschen“. Wenn Sie die Tabelle defragmentieren müssen, können Sie „truncate“ verwenden, anschließend den Speicher wiederverwenden und die Daten anschließend erneut importieren/einfügen. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Vue3 AST Parser-Quellcode-Analyse
>>: Lösung für die langsame Reaktion des Tomcat-Servers
Vorwort Nach einem Failover sind Synchronisierung...
Die Lösung für das Problem, dass die PHP7.3-Versi...
Das CSS-Zählerattribut wird von fast allen Browse...
1. Allgemeine Verbindungen für MySQL INNER JOIN (...
1. Verschiedene CSS-Symbole Es gibt drei Möglichk...
Wenn Ihr Computer ein Mac ist, ist die Verwendung...
Es gibt zwei Arten von HTML-Tags: Inline-Elemente...
Vorwort Jeder weiß, wie man ein JAR-Paket unter L...
Inhaltsverzeichnis Symboldatentyp Der Grund, waru...
Im Webdesign hört man oft die Eigenschaftsnamen „...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...
Inhaltsverzeichnis 1. Was ist eine doppelt verknü...
Der erste Schritt besteht darin, das komprimierte...
Inhaltsverzeichnis 1. fill()-Syntax 2. Verwendung...
Vorwort Die Schlafsystemfunktion in MySQL hat nur...