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 |
+----+----------+------+-------+

Antworten:


153

Versuche dies:

ALTER TABLE table_name MODIFY password varchar(20) AFTER id

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


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

2

Sie können es auch so machen:

ALTER TABLE table_name CHANGE COLUMN column_name column_name data_type AFTER another_column_name;
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.