Zuerst müssen Sie überlegen, ob es wirklich notwendig ist, die
Spaltenreihenfolge in der Tabelle zu ändern. Das Hauptanliegen
von SQL ist ja schließlich, die Anwendung vom Format der
Datenspeicherung abzukoppeln. Sie sollten immer die Reihenfolge
angeben, in der Sie Ihre Daten abholen möchten. Die erste der
folgenden Anweisungen gibt die Spalten in der Reihenfolge
col_name1
,
col_name2
,
col_name3
zurück, und die zweite in
der Reihenfolge col_name1
,
col_name3
,
col_name2
:
mysql>SELECT
mysql>col_name1
,col_name2
,col_name3
FROMtbl_name
;SELECT
col_name1
,col_name3
,col_name2
FROMtbl_name
;
Wenn Sie dennoch die Reihenfolge der Spalten ändern möchten, tun Sie das folgendermaßen:
Sie erzeugen eine neue Tabelle, in der die Spalten die neue Reihenfolge haben.
Sie führen folgende Anweisung aus:
mysql>INSERT INTO new_table
->SELECT columns-in-new-order FROM old_table;
Sie löschen die old_table
oder benennen
sie um.
Sie geben der neuen Tabelle den Namen des Originals:
mysql> ALTER TABLE new_table RENAME old_table;
SELECT *
eignet sich gut für Testanfragen.
In einer Anwendung sollten Sie sich jedoch
nie darauf verlassen, mit SELECT
*
die Spalten nach ihrer Position abzufragen. Die
Reihenfolge und Position, in der die Spalten zurückgegeben
werden, kann sich ändern, wenn Sie Spalten neu einfügen,
verschieben oder löschen. Eine einfache Änderung an der
Tabellenstruktur kann so Ihre Anwendung bereits zum Absturz
bringen.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.