479 Stimmen

Das 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 lastname positionieren.

Ich habe es 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; überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, für die richtige Syntax, um zu verwenden in der Nähe von ') AFTER lastname' in Zeile 7

Wie kann ich AFTER in einer Abfrage wie dieser verwenden?

920voto

Ayyappan Sekar Punkte 10507

Probieren Sie dies

ALTER TABLE Benutzer
HINZUFÜGEN SPALTE `Zähler` SMALLINT(6) NOT NULL NACH `Nachname`,
HINZUFÜGEN SPALTE `Protokoll` VARCHAR(12) NOT NULL NACH `Zähler`,
HINZUFÜGEN SPALTE `Status` INT(10) UNSIGNED NOT NULL NACH `Protokoll`;

Überprüfen Sie die Syntax

94voto

user3106476 Punkte 881

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

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

Wenn Sie mehrere Spalten hinzufügen möchten, müssen Sie jedes Mal den 'ADD' Befehl 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

Zu beachten

Bei der zweiten Methode sollte die letzte ADD COLUMN Spalte tatsächlich die erste Spalte sein, die Sie der Tabelle anhängen möchten.

Zum Beispiel: Wenn Sie count, log, status in genau dieser Reihenfolge nach lastname hinzufügen möchten, wäre die Syntax tatsächlich:

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

11voto

Denys Popov Punkte 1032

Dieser ist korrekt:

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`;

11voto

Piyush Saxena Punkte 127

Sie können mehrere Spaltennamen mit Kommas unter Verwendung von ADD COLUMN nicht nennen. Sie müssen jedes Mal ADD COLUMN erwähnen, wenn Sie eine neue Spalte definieren.

10voto

WestAce Punkte 750

Alternativ:

ALTER TABLE benutzer
HINZUFÜGEN SPALTE `status` INT(10) UNSIGNED NOT NULL NACH `nachname`,
HINZUFÜGEN SPALTE `log` VARCHAR(12) NOT NULL NACH `nachname`,
HINZUFÜGEN SPALTE `count` SMALLINT(6) NOT NULL NACH `nachname`;

Wird sie in der gewünschten Reihenfolge platzieren, während sie die NACH-Anweisung optimiert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X