GARANTIR DESCONTO

Fórum [Resolvido] Trocar posição de coluna em tabela no PostgreSQL #568931

19/03/2014

0

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

Daniel Hannemann

Responder

Posts

20/03/2014

André Pereira

[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.
Responder

Gostei + 0

21/03/2014

Daniel Hannemann

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.
Responder

Gostei + 0

24/03/2014

Emanoély Gura

[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.
Responder

Gostei + 0

24/03/2014

André Pereira

[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.
Responder

Gostei + 0

25/03/2014

Daniel Hannemann

[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 ';'; 
Acho que o tópico tá encerrado. Muito obrigado aos que me ajudaram! Mas se alguém um dia tiver uma solução melhor...
Responder

Gostei + 0

25/03/2014

André Pereira

[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 ';'; 
Acho que o tópico tá encerrado. Muito obrigado aos que me ajudaram! Mas se alguém um dia tiver uma solução melhor...
Valeu pelo retorno.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar