Jeśli mam tabelę z kolumnami:
id | name | created_date
i chciałbym dodać kolumnę, używam:
alter table my_table add column email varchar(255)
Następnie kolumna jest dodawana za created_date
kolumną.
Czy jest jakiś sposób, aby określić pozycję nowej kolumny? np. żebym mógł dodać go później name
i uzyskać tabelę:
id | name | email | created_date
postgresql
database-design
Jonas
źródło
źródło
view
który jest w tej kolejności ... technicznie pozycja kolumny nie powinna mieć znaczenia, ponieważ możesz zdefiniować je w dowolnej kolejności w zapytaniu ... i generalnie nie powinieneś robićselect *
psql -E
przełącznika, aby zobaczyć rzeczywiste zapytanie)Odpowiedzi:
ALTER TABLE ADD COLUMN
doda tylko nową kolumnę na końcu, jako ostatnią. Aby utworzyć nową kolumnę w innej pozycji, musisz ponownie utworzyć tabelę i skopiować dane ze starej / bieżącej tabeli w tej nowej tabeli.źródło
Musisz odtworzyć tabelę, jeśli chcesz mieć określone zamówienie. Po prostu zrób coś takiego:
Utwórz indeksy zgodnie z potrzebami itp.
źródło
Jeśli chcesz tego tylko dla wyglądu, łatwiej jest mi zachować widok dla każdej tabeli z pożądaną kolejnością kolumn i wybrać z niej zamiast tabeli.
Do wszystkich innych celów (takich jak wstawianie, łączenie) lepiej jest zawsze określać listę kolumn.
źródło