Heim  >  Artikel  >  Datenbank  >  Änderung des MySQL-Tabellentyps

Änderung des MySQL-Tabellentyps

WBOY
WBOYOriginal
2023-05-23 14:03:131602Durchsuche

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.

  1. Übersicht

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.

  1. Änderung von einer nicht-transaktionalen Tabelle in eine transaktionale Tabelle

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-Transaktionstabelle
  1. In praktischen Anwendungen Wechsel von Transaktionstabelle zu Nicht-Transaktionstabelle Dies ist relativ selten . Im Folgenden wird beschrieben, wie Sie eine InnoDB-Tabelle in eine MyISAM-Tabelle ändern.

1) 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

(

...

) ENGINE=MyISAM; # 🎜🎜#

Unter diesen ist new_table der Name der zu erstellenden Tabelle und ... sind die Feldinformationen und Einschränkungsinformationen in der neuen Tabelle.

3) Daten in die neue Tabelle importieren

Mit der INSERT INTO-Anweisung können Sie Daten aus der Originaltabelle in die neue Tabelle einfügen. Um beispielsweise Daten aus der Tabelle test_table in die Tabelle new_table einzufügen, können Sie den folgenden Befehl ausführen:

INSERT INTO new_table SELECT * FROM test_table;

4) Benennen Sie die um Tabelle#🎜 🎜#

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.

Fazit

    Das Ändern des MySQL-Tabellentyps ist ein relativ häufiger Vorgang. In tatsächlichen Anwendungen müssen je nach tatsächlichem Bedarf unterschiedliche Tabellentypen ausgewählt werden. Unabhängig davon, ob es sich um eine Änderung von einer nicht-transaktionalen Tabelle in eine transaktionale Tabelle oder von einer transaktionalen Tabelle in eine nicht-transaktionale Tabelle handelt, sind Tabellensperre und Datensicherung erforderlich. Dieser Artikel stellt die grundlegenden Methoden zum Ändern von MySQL-Tabellentypen vor und hofft, den Lesern hilfreich zu sein.

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn