Hinzufügen mehrerer Spalten NACH einer bestimmten Spalte in MySQL
Muss ich hinzufügen, mehrere Spalten zu einer Tabelle, aber die position der Spalten nach eine Spalte namens lastname
.
Ich habe dies ausprobiert:
ALTER TABLE `users` ADD COLUMN
(
`count` smallint(6) NOT NULL,
`log` varchar(12) NOT NULL,
`status` int(10) unsigned NOT NULL
)
AFTER `lastname`;
Bekomme ich diesen Fehler:
Haben Sie einen Fehler in Ihrer SQL-syntax; Sie in der Bedienungsanleitung, dass
entspricht Ihrer MySQL-server-version für den richtigen syntax zu verwenden
in der Nähe von ') NACHlastname
' in Zeile 7
Wie kann ich NACH einer Abfrage wie dieser?
- Welchen Dialekt sprichst du? Sieht aus wie mysql zu mir. Aber die
ALTER TABLE
syntax variiert ein bisschen zwischen den Dialekten. - Sorry, ja, mysql.
- möglich, Duplikat der MySQL Alter Table Add Feld Vor oder Nach einem Feld bereits vorhanden
- Ich glaube, Sie brauchen eine AFTER-Schlüsselwort für jede der Spalten, die Sie hinzufügen. Ob das bedeutet, dass Sie brauchen alle 3 werden NACH Nachname oder eine separate Anweisung ALTER TABLE pro neuer Spalte, kann ich nicht sicher sagen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese
überprüfen Sie die syntax
ADD
,ALTER
,DROP
, undCHANGE
Klauseln zulässig sind, in einem einzigenALTER TABLE
- Anweisung durch Kommata getrennt. Dies ist ein MySQL-Erweiterung zum SQL-standard, die es erlaubt, nur eine der jede Klausel pro ALTER TABLE-Anweisung.Wenn Sie möchten, fügen Sie eine einzelne Spalte nach einem bestimmten Bereich, dann ist die folgende MySQL-Abfrage funktionieren sollte:
Wenn Sie möchten, fügen Sie mehrere Spalten, dann müssen Sie mit 'ADD' - Befehl jedes mal, wenn für eine Spalte. Hier ist die MySQL-Abfrage für diese:
Punkt zu beachten
In der zweiten Methode, der Letzte
ADD COLUMN
Spalte sollte eigentlich die erste Spalte aus, die Sie Anhängen möchten, auf den Tisch.E. g: wenn Sie hinzufügen möchten
count
,log
,status
in der exakten Reihenfolge nachlastname
, dann ist die syntax wäre eigentlich:count
,log
,status
odercount
,status
,log
?Du nicht erwähnen mehrere Spaltennamen durch Kommas getrennt
ADD COLUMN
. Sie erwähnen müssenADD COLUMN
jedes mal, wenn Sie definieren, eine neue Spalte.Dieser ist richtig:
ALTER TABLE
users
SPALTE HINZUFÜGENCOLUMN NAME
DATENTYP(GRÖßE) NACHEXISTING COLUMN NAME
;Können Sie es mit dieser, arbeiten gut für mich.
Eine Möglichkeit wäre es, sich nicht die Mühe, über die Neuordnung der Spalten in der Tabelle und ändern Sie einfach es durch hinzufügen von Spalten. Erstellen Sie dann eine Ansicht mit den Spalten in der Reihenfolge, die Sie wollen-vorausgesetzt, dass die Reihenfolge wirklich wichtig ist. Die anzeigen können leicht geändert werden, um eine Bestellung, die Sie möchten. Da kann ich mir nicht vorstellen, dass die Reihenfolge wäre wichtig für die programmatische Anwendungen, die anzeigen, sollte ausreichen, für diejenigen, die Handbuch Abfragen, wo es wichtig sein könnte.
Dies funktioniert gut für mich:
Die Lösung, die für mich funktionierte mit default-Wert 0 ist die folgende