Wenn ich eine Tabelle mit den Spalten habe:
id | name | created_date
und möchte eine Spalte hinzufügen, benutze ich:
alter table my_table add column email varchar(255)
Dann wird die Spalte nach der created_date
Spalte hinzugefügt .
Kann ich die Position für die neue Spalte in irgendeiner Weise angeben? zB damit ich es nachher hinzufügen kann name
und eine Tabelle wie folgt bekomme:
id | name | email | created_date
postgresql
database-design
Jonas
quelle
quelle
view
Show in dieser Reihenfolge erstellen. Technisch gesehen sollte die Position der Spalte keine Rolle spielen, da Sie sie in einer beliebigen Reihenfolge in einer Abfrage definieren könnenselect *
psql -E
Schalter, um die tatsächliche Abfrage zu sehen)Antworten:
ALTER TABLE ADD COLUMN
fügt die neue Spalte nur am Ende als letzte hinzu. Um eine neue Spalte an einer anderen Position zu erstellen, müssen Sie die Tabelle neu erstellen und die Daten aus der alten / aktuellen Tabelle in diese neue Tabelle kopieren.quelle
Sie müssen die Tabelle neu erstellen, wenn Sie eine bestimmte Reihenfolge wünschen. Mach einfach so etwas wie:
Erstellen Sie Indizes nach Bedarf usw.
quelle
Wenn Sie dies nur zur Veranschaulichung wünschen, finde ich es einfacher, eine Ansicht für jede Tabelle mit der gewünschten Reihenfolge der Spalten zu behalten und statt der Tabelle eine Auswahl daraus zu treffen.
Für alle anderen Zwecke (wie Einfügen, Vereinigen) ist es besser, immer die Spaltenliste anzugeben.
quelle