Eu procuro uma maneira simples de selecionar todas as colunas, exceto uma no psql.
Com psql
eu quero dizer a linha de comando interativa.
Eu ficaria feliz com uma ferramenta que se expande *
para uma lista de nomes de colunas citados. Então eu poderia remover a coluna para remover manualmente.
Minha pergunta é apenas sobre o uso interativo do psql. Não é uma duplicata de perguntas de pessoas insatisfeitas com o padrão sql e que desejam executar algo como "select * -foo".
postgresql
psql
guettli
fonte
fonte
information_schema
através de uma função pl / pgsql para gerar uma lista com bastante facilidade, mas dessa forma seriam duas consultas.desc
comandopsql
Respostas:
Para obter a lista de colunas na ordem padrão, sem a coluna incorreta:
Ou apenas
WHERE attrelid = 'mytable'::regclass
se você confiar no caminho de pesquisa para resolver o esquema correto.quote_ident()
adiciona aspas duplas quando necessário.Fiz a mesma pergunta em 2007 no pgsql-general . Era o Postgres 8.2 naquela época. Doces lembranças ...
Relacionado:
fonte
\dq thetable bad_column
.q
para a tarefa. Talvez seja uma opção geral para toda a família de\d
comandos para mostrar uma lista simples de nomes concatenados? Like\d- tbl
(mnemônico: o oposto de\d+
, que mostra mais detalhes). Isso permitiria obter basicamente qualquer lista simples de objetos. Tabelas de um esquema:\dt- public.*
, funções que começam com "f_foo":\df- f_foo*
etc - ou colunas numa tabela:\d- mytbl
. Semelhante ao que o comando shellls
faz ...Acho que encontrei o que você está procurando, mas não testei eu mesmo.
Existe um software chamado SequelPro que permite selecionar os campos de uma determinada tabela, mas é apenas para o MySQL. Leia abaixo em algum lugar no meio da página:
Existe outro software chamado PSequel, que roda apenas no Mac e afirma ser do tipo SequelPro criado para o Postgres:
Espero que isto ajude.
fonte