Как указать позицию для нового столбца в PostgreSQL?

Если у меня есть таблица со столбцами:

  id | имя | Дата создания
 

и хотел бы добавить столбец, я использую:

  изменить таблицу my_table добавить столбец email varchar (255)
 

Затем столбец добавляется после столбца created_date .

Можно ли указать позицию для нового столбца? например поэтому я могу добавить его после name и получить таблицу типа:

  id | имя | электронная почта | Дата создания
 
52 голоса | спросил Jonas 12 J0000006Europe/Moscow 2011, 17:36:11

2 ответа


38

ALTER TABLE ADD COLUMN добавит только новый столбец в конце, как последний. Чтобы создать новый столбец в другой позиции, вам нужно воссоздать таблицу и скопировать данные из старой /текущей таблицы в эту новую таблицу.

ответил Marian 12 J0000006Europe/Moscow 2011, 18:14:22
16

Вам нужно будет воссоздать таблицу, если вам нужен определенный порядок. Просто сделайте что-нибудь вроде:

  alter table tablename переименовать в oldtable;
create table tablename (колонка defs go here);
вставить в tablename (col1, col2, col3) выбрать col2, col1, col3 из oldtable;
 

Создайте индексы по мере необходимости и т. д.

ответил Scott Marlowe 27 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 27 Sep 2011 00:27:35 +0400 2011, 00:27:35

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132