Ich muss einer Tabelle mehrere Spalten hinzufügen, aber die Spalten nach einer aufgerufenen Spalte positionieren lastname
.
Ich habe das 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, auf die richtige Syntax für die Verwendung in der Nähe von ') AFTER
lastname
' in Zeile 7
Wie kann ich AFTER in einer solchen Abfrage verwenden?
ALTER TABLE
Syntax variiert jedoch etwas zwischen den Dialekten.Antworten:
Versuche dies
Überprüfen Sie die Syntax
quelle
ADD
,ALTER
,DROP
, undCHANGE
Klauseln in einer einzigen erlaubt sindALTER TABLE
Anweisung durch Komma getrennt. Dies ist eine MySQL-Erweiterung für Standard-SQL, die nur eine Klausel pro ALTER TABLE-Anweisung zulässt.Wenn Sie nach einem bestimmten Feld eine einzelne Spalte hinzufügen möchten, sollte die folgende MySQL-Abfrage funktionieren:
Wenn Sie mehrere Spalten hinzufügen möchten, müssen Sie jedes Mal den Befehl 'ADD' für eine Spalte verwenden. Hier ist die MySQL-Abfrage dafür:
Punkt zu beachten
Bei der zweiten Methode sollte die letzte
ADD COLUMN
Spalte tatsächlich die erste Spalte sein, die Sie an die Tabelle anhängen möchten.Zum Beispiel: Wenn Sie hinzufügen möchten
count
,log
,status
nachdem er in der genauen Reihenfolgelastname
, dann würde die Syntax tatsächlich sein:quelle
count
,log
,status
odercount
,status
,log
?Sie können nicht mehrere Spaltennamen mit Kommas verwenden
ADD COLUMN
. Sie müssenADD COLUMN
jedes Mal erwähnen, wenn Sie eine neue Spalte definieren.quelle
Dieser ist richtig:
quelle
Sie können es damit machen, gut für mich arbeiten.
quelle
Eine Möglichkeit wäre, sich nicht darum zu kümmern, die Spalten in der Tabelle neu zu ordnen und sie einfach durch Hinzufügen der Spalten zu ändern. Erstellen Sie dann eine Ansicht mit den Spalten in der gewünschten Reihenfolge - vorausgesetzt, die Reihenfolge ist wirklich wichtig. Die Ansicht kann leicht geändert werden, um jede gewünschte Reihenfolge widerzuspiegeln. Da ich mir nicht vorstellen kann, dass die Reihenfolge für programmatische Anwendungen wichtig ist, sollte die Ansicht für manuelle Abfragen ausreichen, bei denen dies wichtig sein könnte.
quelle
Es wird gute Ergebnisse geben.
quelle
Das funktioniert gut für mich:
quelle
Die Lösung, die für mich mit dem Standardwert 0 funktioniert hat, ist die folgende
quelle
Alternative:
Bringt sie in die gewünschte Reihenfolge, während die AFTER-Anweisung optimiert wird.
quelle