Se eu tiver uma tabela com as colunas:
id | name | created_date
e gostaria de adicionar uma coluna, eu uso:
alter table my_table add column email varchar(255)
Em seguida, a coluna é adicionada após a created_date
coluna.
Existe alguma maneira de especificar a posição da nova coluna? por exemplo, para que eu possa adicioná-lo depois name
e obter uma tabela como:
id | name | email | created_date
postgresql
database-design
Jonas
fonte
fonte
view
programa que mostre nessa ordem ... tecnicamente a posição da coluna não deve importar, pois você pode defini-los em qualquer ordem em uma consulta ... e geralmente não deve fazer umselect *
psql -E
interruptor para ver a consulta real)Respostas:
ALTER TABLE ADD COLUMN
adicionará apenas a nova coluna no final, como a última. Para criar uma nova coluna em outra posição, é necessário recriar a tabela e copiar os dados da tabela antiga / atual nesta nova tabela.fonte
Você precisará recriar a tabela se desejar uma determinada ordem. Basta fazer algo como:
Crie índices conforme necessário etc.
fonte
Se você quer isso apenas para a aparência, acho mais fácil manter uma visualização para cada tabela com a ordem desejada das colunas e selecioná-la em vez da tabela.
Para todos os outros fins (como inserção, união), é melhor sempre especificar a lista de colunas.
fonte