Wie kann man die Spaltenposition der MySQL-Tabelle ändern, ohne Spaltendaten zu verlieren?

71

Ich möchte die Spaltenpositionen meiner Datenbanktabelle ändern, ohne Daten zu verlieren.

Zum Beispiel:

Aktuelle Tabelle:

+----+------+-------+----------+
| id | name | email | password |
+----+------+-------+----------+

zu

+----+----------+------+-------+
| id | password | name | email |
+----+----------+------+-------+
DS
quelle

Antworten:

153

Versuche dies:

ALTER TABLE table_name MODIFY password varchar(20) AFTER id
Hearaman
quelle
Setzt dies Datensätze zurück, für die table_nameursprünglich festgelegt wurde?
Pilzanthrax
2
@fungusanthrax ja, das tut es.
Khue Bui
Wie angegeben, werden andere Feldeigenschaften als Typ auf den Standardwert gesetzt und der Kommentar geht verloren. Möglicherweise müssen Sie <br/> ALTER TABLE verwenden. Tabellenname MODIFY Feldname varchar (20) NOT NULL DEFAULT '' COMMENT 'Kommentar geht hier' AFTER id
Guy Gordon
28

Hearamans Antwort ist richtig; Wenn Sie jedoch phpMyAdmin verwenden, gibt es eine visuelle und praktische Möglichkeit, dies zu tun.

  1. Öffne die Tabelle
  2. Wählen Sie die Registerkarte " Struktur "
  3. Klicken Sie auf " Spalten verschieben "
  4. Spaltennamen ziehen und ablegen

Verschieben Sie den Spaltenlink in der Mitte der Registerkarte Struktur Popup zum Verschieben von Spalten

Arman Ozak
quelle
Wie zum Teufel finden Sie eine Option "Spalte verschieben".
Sourav Sarkar
@SouravSarkar Es sollte sich direkt unter der Tabelle befinden, die die Struktur zeigt. Es können jedoch Versionsunterschiede auftreten.
Arman Ozak
In welcher @Version haben Sie die Option gesehen?
Sourav Sarkar
@SouravSarkar Ich bin derzeit auf Version 4.5.4.1, bin mir aber auch ziemlich sicher, dass es schon eine ganze Weile dort ist (wahrscheinlich seit Version 4.0).
Arman Ozak
2
Hallo David . Ich fürchte, das ist nicht der Fall. Durch das Neuanordnen von Tabellenspalten auf der Registerkarte Durchsuchen wird die tatsächliche Spaltenreihenfolge nicht geändert, und es verbleiben phpMyAdmin-Anweisungen zum Anzeigen der Spaltenreihenfolge. Wenn Sie anschließend versuchen, die Tabelle mit einem anderen Tool (z. B. DataGrip) anzuzeigen, wird die Spaltenreihenfolge unverändert. Die Schaltfläche "Spalten verschieben" auf der Registerkarte "Struktur" ist die richtige Vorgehensweise.
Arman Ozak
7

Wenn Sie die MySQL-Workbench verwenden,

  1. Klicken Sie mit der rechten Maustaste auf die Tabelle
  2. Tabelle ändern
  3. Spalten ziehen und neu anordnen
  4. Klicken Sie auf Übernehmen und fertig
Mohemmed Niyaz
quelle
2

Sie können es auch so machen:

ALTER TABLE table_name CHANGE COLUMN column_name column_name data_type AFTER another_column_name;
Jundev
quelle