Busco una manera simple de seleccionar todas las columnas excepto una en psql.
Con psql
me refiero a la línea de comandos interactiva.
Estaría contento con una herramienta que se expande *
a una lista de nombres de columnas citadas. Entonces podría eliminar la columna para eliminar a mano.
Mi pregunta es sobre el uso interactivo de psql. No es un duplicado de preguntas de personas descontentas con el estándar sql y que desean ejecutar algo como "select * -foo".
postgresql
psql
guettli
fuente
fuente
information_schema
través de una función pl / pgsql para generar una lista con bastante facilidad, pero de esa manera serían dos consultas.desc
comando enpsql
Respuestas:
Para obtener la lista de columnas en el orden predeterminado, sin la columna incorrecta:
O simplemente
WHERE attrelid = 'mytable'::regclass
si confía en la ruta de búsqueda para resolver el esquema correcto.quote_ident()
agrega comillas dobles cuando es necesario.Hice la misma pregunta en 2007 sobre pgsql-general . Era Postgres 8.2 en aquel entonces. Dulces memorias ...
Relacionado:
fuente
\dq thetable bad_column
.q
para la tarea. ¿Quizás una opción general para toda la familia de\d
comandos para mostrar una lista de nombres concatenados? Me gusta\d- tbl
(mnemónico: lo contrario de\d+
, que muestra más detalles). Esto permitiría obtener básicamente cualquier lista de objetos desnuda. Tablas de un esquema:\dt- public.*
, funciones que comienzan con "f_foo":\df- f_foo*
etc - o columnas en una tabla:\d- mytbl
. Similar a lo que hace el comando de shellls
...Creo que he encontrado lo que estás buscando pero no lo he probado yo mismo.
Hay un software llamado SequelPro que le permitiría seleccionar los campos de una tabla determinada, pero es solo para MySQL. Por favor lea desde abajo desde algún lugar en el medio de la página:
Hay otro software llamado PSequel que solo se ejecuta en Mac y afirma que es del tipo SequelPro creado para Postgres:
Espero que esto ayude.
fuente