MySQL ist ein relationales Open-Source-Datenbankverwaltungssystem. Es bietet eine Vielzahl von Tischtypen, um unterschiedlichen Anforderungen gerecht zu werden. In praktischen Anwendungen ist es manchmal erforderlich, den Tabellentyp zu ändern. In diesem Artikel wird erläutert, wie Sie den Typ der MySQL-Tabelle ändern.
MySQL-Tabellentypen sind hauptsächlich in InnoDB, MyISAM, MEMORY, CSV und andere Typen unterteilt. InnoDB ist die Standardspeicher-Engine von MySQL. Jede Speicher-Engine hat ihre Vor- und Nachteile und muss entsprechend den tatsächlichen Anforderungen in tatsächlichen Anwendungen ausgewählt werden.
In MySQL wird das Ändern des Datentyps einer Tabelle im Allgemeinen in zwei Situationen unterteilt:
1) Ändern von einer nicht-transaktionalen Tabelle (wie MyISAM) in eine transaktionale Tabelle Tabelle (z. B. InnoDB);
2) Von einer Transaktionstabelle (z. B. InnoDB) in eine nicht-transaktionale Tabelle (z. B. MyISAM) ändern.
Die Änderungsmethoden in den beiden Situationen unterscheiden sich geringfügig, was im Folgenden ausführlich vorgestellt wird.
Die Änderung einer nicht-transaktionalen Tabelle in eine transaktionale Tabelle ist ein relativ häufiger Vorgang . Im Folgenden wird beschrieben, wie Sie eine MyISAM-Tabelle in eine InnoDB-Tabelle ändern.
1) Anzeigen des Typs der aktuellen Tabelle
Mit der DESCRIBE-Anweisung können Sie die grundlegenden Informationen der Tabelle anzeigen, z. B. die Feldinformationen der Tabelle, Indexinformationen usw. usw. Führen Sie den folgenden Befehl aus:
DESCRIBE Tabellenname;
wobei Tabellenname der Name der abzufragenden Tabelle ist.
2) Daten sichern
Bevor Sie den Tabellentyp ändern, müssen Sie die Daten in der Tabelle sichern. Mit dem Befehl mysqldump können Sie die Daten in der Tabelle in einer Datei sichern. Um beispielsweise die Tabelle test_table in der testDB-Bibliothek in der Datei test_table.sql zu sichern, können Sie den folgenden Befehl ausführen:
mysqldump testDB test_table > test_table.sql
#🎜🎜 #3) Tabelle sperren# 🎜🎜#Bevor Sie den Tabellentyp ändern, müssen Sie die Tabelle sperren. In MySQL ist eine Schreibsperre erforderlich, um die ALTER TABLE-Anweisung auszuführen. Daher müssen Sie vor dem Ausführen der ALTER TABLE-Anweisung die Tabelle sperren, um zu verhindern, dass andere Benutzer die Tabelle ändern.
Sie können die Tabelle mit dem folgenden Befehl sperren:
LOCK TABLES Tabellenname WRITE;
wobei Tabellenname der Name der zu ändernden Tabelle ist .
4) Ändern Sie den Tabellentyp
Führen Sie den folgenden Befehl aus, um den Tabellentyp von MyISAM zu InnoDB zu ändern:
ALTER TABLE Tabellenname ENGINE=InnoDB ;
Unter diesen ist Tabellenname der Name der zu ändernden Tabelle.
5) Entsperren Sie die Tabelle.
Nachdem die Änderung abgeschlossen ist, müssen Sie die Tabelle entsperren. Führen Sie den folgenden Befehl aus:
UNLOCK TABLES;
Zu diesem Zeitpunkt wurde die MyISAM-Tabelle erfolgreich in eine InnoDB-Tabelle geändert.
Änderung von Transaktionstabelle zu Nicht-Transaktionstabelle1) Daten sichern
Bevor Sie den Tabellentyp ändern, müssen Sie auch die Daten in der Tabelle sichern. Die Sicherungsmethode ist dieselbe wie zuvor und wird hier nicht wiederholt.
2) Erstellen Sie eine neue Tabelle
Da die Speichermethoden der beiden Tabellentypen unterschiedlich sind, kann die InnoDB-Tabelle nicht durch direktes Ändern der Tabelle in eine MyISAM-Tabelle geändert werden. Daher müssen Sie zunächst eine neue MyISAM-Tabelle erstellen und Daten in die Tabelle importieren.
Sie können eine neue MyISAM-Tabelle mit dem folgenden Befehl erstellen:
CREATE TABLE new_table
(...
Nachdem der Datenimport abgeschlossen ist, muss die neue Tabelle in die ursprüngliche Tabelle umbenannt werden. Sie können den folgenden Befehl ausführen:
RENAME TABLE test_table TO old_table, new_table TO test_table;
wobei old_table der alte Tabellenname und test_table der neue Tabellenname ist.
Zu diesem Zeitpunkt wurde die InnoDB-Tabelle erfolgreich in eine MyISAM-Tabelle geändert.
FazitDas obige ist der detaillierte Inhalt vonÄnderung des MySQL-Tabellentyps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!