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
ALTER TABLE ADD COLUMN
apenas adicionará a nova coluna no final, como a última. Para criar uma nova coluna em outra posição, você precisa recriar a tabela e copiar os dados da tabela antiga/atual nesta nova tabela.Você precisará recriar a tabela se desejar uma determinada ordem. Basta fazer algo como:
Crie índices conforme necessário, etc.
Se você quiser isso apenas para aparência, acho mais fácil manter uma visualização por cada tabela com a ordem desejada das colunas e selecionar a partir dela em vez da tabela.
Para todos os outros propósitos (como inserir, união) é melhor sempre especificar a lista de colunas.