Como trocar a posição de coluna em uma tabela?

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

19/03/2014

Jair N.

Bom Dia, "ter? Tem! Porém, é meio complicado... bem já fiz isso alguma vezes o problema é que não existe um processo automático para isso. Você deve estar se perguntando então como? Seguinte,..

Fiz uma "gambiarra para isso, poderia ter criado uma função etc e tal. Porém ainda não o fiz "preguiça" mas vou te passar o que tenho...

-- Selecionando a tabela...
SELECT pg_attribute.attnum
, pg_attribute.attname
FROM pg_attribute
INNER JOIN pg_type
ON (pg_type.typrelid = pg_attribute.attrelid)
WHERE (pg_type.typname = 'my_tabela') -- nome da tabela para pesquisa
AND (pg_attribute.attstattarget = -1)
-- Alterando o valor...
UPDATE pg_attribute
SET attnum = 5 -- quantidade de posições posteriores
FROM pg_type
WHERE (pg_type.typrelid = pg_attribute.attrelid)
AND (pg_type.typname = 'my_tabela') -- nome da tabela para pesquisa
AND (pg_attribute.attname = 'my_campo') -- nome do campo para pesquisa
AND (pg_attribute.attstattarget = -1)

Para o efeito desejado é melhor alterar todos os campos com uma seqüência posterior aquela que você quer ai depois nesse intervalo acrescentar o que você está querendo....
Qualquer dúvida pergunte... se eu tiver a resposta postarei...

Atc.


Responder

05/07/2014

Ronaldo Lanhellas

Não há uma forma automática, eu creio que a forma mais rápida é a seguinte:

1 - Crie uma tabela auxiliar, cópia da tabela original, apenas com a posição da coluna onde você deseja.
2 - Cria um INSERT Com SELECT da tabela original para a tabela auxiliar.
3 - Pronto, agora delete a original e mude o nome da auxiliar para a original.
Responder

07/07/2014

Daniel Hannemann

Muito obrigado pelas respostas e pela atenção! Foram mt úteis!
Caso no futuro eu tenha alguma dúvida vou postar aqui sim ^^
Responder

07/07/2014

Ronaldo Lanhellas

Fique a vontade, ajudaremos no que for possível.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar