[Resolvido] Trocar posição de coluna em tabela no PostgreSQL
Gostaria de saber como trocar a posição de coluna em uma tabela ou, caso não seja possível, como adicioná-la em uma posição específica (por padrão ela sempre fica como a mais a direita). No MySQL basta usar o comando "AFTER Nome_Coluna;", mas no Postgre não funciona. Ficarei muito grato com qualquer ajuda.
Daniel Hannemann
Curtidas 0
Respostas
André Pereira
19/03/2014
[quote="dhannemann"]Gostaria de saber como trocar a posição de coluna em uma tabela ou, caso não seja possível, como adicioná-la em uma posição específica (por padrão ela sempre fica como a mais a direita). No MySQL basta usar o comando "AFTER Nome_Coluna;", mas no Postgre não funciona. Ficarei muito grato com qualquer ajuda.
Você sabe que a posição das colunas em um banco de dados relacional não altera nada no seu sistema???
O que você pode fazer é criar uma view que retorne os dados dessa tabela com as colunas na ordem que você desejar.
Não conheço o Postgre, sendo assim não poderia te ajudar com essa questão, no MySQL sei que dá para fazer isso com a própria GUI criada para o Banco, talvez exista algo parecido para o Postgre.
Mas lembrando que não é necessário isso.
GOSTEI 0
Daniel Hannemann
19/03/2014
Olá boa tarde. Obrigado pela atenção. Acho que me expressei mal. No MySQL eu sei que tem. O comando After Nome_Tabela faz o que quero. Mas tipo.. não é apenas pra exibir na ordem que desejo. É para alterar a ordem dos atributos na tabela. Para migrar dados de uma tabela para outra é necessário que as duas possuam os atributos na mesma ordem. Para migrar de um TXT para uma tabela ocorre o mesmo. Tanto é que a solução alternativa que encontrei até agora foi migrar do TXT para o Excel, neste colocar as colunas na mesma ordem da tabela no Banco e por fim devolver pro TXT na ordem certa.
GOSTEI 0
Emanoély Gura
19/03/2014
[quote="dhannemann"] Para migrar dados de uma tabela para outra é necessário que as duas possuam os atributos na mesma ordem.
Uma solução de INSERT com SELECT não resolve o seu problema?
Assim você consegue trabalhar com quaisquer colunas ou ordem.
GOSTEI 0
André Pereira
19/03/2014
[quote="dhannemann"]Olá boa tarde. Obrigado pela atenção. Acho que me expressei mal. No MySQL eu sei que tem. O comando After Nome_Tabela faz o que quero. Mas tipo.. não é apenas pra exibir na ordem que desejo. É para alterar a ordem dos atributos na tabela. Para migrar dados de uma tabela para outra é necessário que as duas possuam os atributos na mesma ordem. Para migrar de um TXT para uma tabela ocorre o mesmo. Tanto é que a solução alternativa que encontrei até agora foi migrar do TXT para o Excel, neste colocar as colunas na mesma ordem da tabela no Banco e por fim devolver pro TXT na ordem certa.
.
Sendo assim que você deveria fazer um Backup dos registros de sua tabela e recriar sua tabela com as colunas na ordem certa, pesquisei bastante sobre o assunto e pelo que percebi ninguém sabe nenhum comando para tal ação.
GOSTEI 0
Daniel Hannemann
19/03/2014
[quote="D3z40"]Sendo assim que você deveria fazer um Backup dos registros de sua tabela e recriar sua tabela com as colunas na ordem certa, pesquisei bastante sobre o assunto e pelo que percebi ninguém sabe nenhum comando para tal ação.
É, foi exatamente essa a minha solução. Passei os dados pra um Txt, transferi pro Excel, reordenei as tabelas e depois voltei pro Txt na ordem certa. Por fim usei o código abaixo pra passar de volta do Txt pra tabela.
COPY temp FROM 'C:/1.txt' using delimiters ';';
GOSTEI 0
André Pereira
19/03/2014
[quote="dhannemann"][quote="D3z40"]Sendo assim que você deveria fazer um Backup dos registros de sua tabela e recriar sua tabela com as colunas na ordem certa, pesquisei bastante sobre o assunto e pelo que percebi ninguém sabe nenhum comando para tal ação.
É, foi exatamente essa a minha solução. Passei os dados pra um Txt, transferi pro Excel, reordenei as tabelas e depois voltei pro Txt na ordem certa. Por fim usei o código abaixo pra passar de volta do Txt pra tabela.
COPY temp FROM 'C:/1.txt' using delimiters ';';
GOSTEI 0