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?
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
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
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
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.