Если у меня есть таблица со столбцами:
id | name | created_date
и хотел бы добавить столбец, я использую:
alter table my_table add column email varchar(255)
Затем столбец добавляется после created_date
столбца.
Есть ли способ указать позицию для нового столбца? например, чтобы я мог добавить его после name
и получить таблицу вроде:
id | name | email | created_date
view
шоу в таком порядке ... технически положение столбца не должно иметь значения, так как вы можете определить их в любом порядке в запросе ... и вы вообще не должны делатьselect *
psql -E
переключатель, чтобы увидеть фактический запрос)Ответы:
ALTER TABLE ADD COLUMN
добавит только новый столбец в конце, как последний. Чтобы создать новый столбец в другой позиции, вам необходимо заново создать таблицу и скопировать данные из старой / текущей таблицы в эту новую таблицу.источник
Вам нужно будет воссоздать таблицу, если вы хотите определенный порядок. Просто сделайте что-то вроде:
Создавайте индексы по мере необходимости и т. Д.
источник
Если вы хотите это просто для внешнего вида, мне будет проще сохранить представление для каждой таблицы с желаемым порядком столбцов и выбирать из нее вместо таблицы.
Для всех других целей (например, вставка, объединение) лучше всегда указывать список столбцов.
источник