Hinzufügen mehrerer Spalten NACH einer bestimmten Spalte in MySQL

Ich muss mehrere Spalten zu einer Tabelle hinzufügen, aber die Spalten nach einer Spalte namens "Nachname" positionieren.

Ich habe dies versucht:

ALTER TABLE `users` ADD COLUMN
(
    `count` smallint(6) NOT NULL,
    `log` varchar(12) NOT NULL,
    `status` int(10) unsigned NOT NULL
) 
AFTER `lastname`;

Ich erhalte diesen Fehler:

Sie haben einen Fehler in Ihrer SQL-Syntax; sehen Sie im Handbuch nach, das Ihrer MySQL-Server-Version entspricht, um die richtige Syntax zu verwenden nahe ') AFTER Nachname' in Zeile 7


Wie kann ich AFTER in einer Abfrage wie dieser verwenden?

Lösung

Versuchen Sie dies

ALTER TABLE users
ADD COLUMN `count` SMALLINT(6) NOT NULL AFTER `lastname`,
ADD COLUMN `log` VARCHAR(12) NOT NULL AFTER `count`,
ADD COLUMN `status` INT(10) UNSIGNED NOT NULL AFTER `log`;

Prüfen Sie die Syntax

Kommentare (2)

Wenn Sie eine einzelne Spalte nach einem bestimmten Feld hinzufügen möchten, dann sollte die folgende MySQL-Abfrage funktionieren:

ALTER TABLE users
    ADD COLUMN count SMALLINT(6) NOT NULL
    AFTER lastname

Wenn Sie mehrere Spalten hinzufügen wollen, müssen Sie den Befehl 'ADD' jedes Mal für eine Spalte verwenden. Hier ist die MySQL-Abfrage dafür:

ALTER TABLE users
    ADD COLUMN count SMALLINT(6) NOT NULL,
    ADD COLUMN log VARCHAR(12) NOT NULL,
    ADD COLUMN status INT(10) UNSIGNED NOT NULL
    AFTER lastname

Punkt zu beachten

Bei der zweiten Methode sollte die letzte "ADD COLUMN "Spalte eigentlich die erste Spalte sein, die Sie an die Tabelle anhängen wollen.

Z.B.: wenn Sie count, log, status in der genauen Reihenfolge nach lastname hinzufügen wollen, dann würde die Syntax eigentlich lauten:

ALTER TABLE users
    ADD COLUMN log VARCHAR(12) NOT NULL AFTER lastname,
    ADD COLUMN status INT(10) UNSIGNED NOT NULL AFTER lastname,
    ADD COLUMN count SMALLINT(6) NOT NULL AFTER lastname
Kommentare (5)

Eine Möglichkeit wäre, sich nicht um die Neuordnung der Spalten in der Tabelle zu kümmern und sie einfach durch Hinzufügen der Spalten zu ändern. Dann erstellen Sie eine Ansicht, die die Spalten in der gewünschten Reihenfolge enthält - vorausgesetzt, die Reihenfolge ist wirklich wichtig. Die Ansicht kann leicht geändert werden, um die von Ihnen gewünschte Reihenfolge wiederzugeben. Da ich mir nicht vorstellen kann, dass die Reihenfolge für programmatische Anwendungen wichtig ist, sollte die Ansicht für die manuellen Abfragen, bei denen sie wichtig sein könnte, ausreichen.

Kommentare (1)