postgresql - number - Formato de salida alternativo para psql
psql example (7)
Estoy usando PostgreSQL 8.4 en Ubuntu. Tengo una tabla con las columnas c1
a cN
. Las columnas son lo suficientemente anchas para que al seleccionar todas las columnas, una fila de resultados de la consulta se ajuste varias veces. En consecuencia, la salida es difícil de leer.
Cuando los resultados de la consulta constituyen solo unas pocas filas, sería conveniente si pudiera ver los resultados de la consulta de manera que cada columna de cada fila esté en una línea separada, por ejemplo
c1: <value of row 1''s c1>
c2: <value of row 1''s c1>
...
cN: <value of row 1''s cN>
---- some kind of delimiter ----
c1: <value of row 2''s c1>
etc.
Estoy ejecutando estas consultas en un servidor donde preferiría no instalar ningún software adicional. ¿Hay un ajuste de psql que me permita hacer algo así?
(Nuevo) Modo automático expandido: / x auto
Nuevo para Postgresql 9.2; PSQL ajusta automáticamente los registros al ancho de la pantalla. anteriormente, solo tenía el modo expandido activado o desactivado y tenía que cambiar entre los modos según fuera necesario.
- Si el registro puede caber en el ancho de la pantalla; psql utiliza el formato normal.
- Si el registro no puede encajar en el ancho de la pantalla; psql utiliza el modo expandido.
Para obtener este uso: / x auto
Postgresql 9.5 Documentación en el comando PSQL.
Pantalla ancha, formato normal:
id | time | humanize_time | value
----+-------+---------------------------------+-------
1 | 09:30 | Early Morning - (9.30 am) | 570
2 | 11:30 | Late Morning - (11.30 am) | 690
3 | 13:30 | Early Afternoon - (1.30pm) | 810
4 | 15:30 | Late Afternoon - (3.30 pm) | 930
(4 rows)
Pantalla estrecha, formato expandido:
-[ RECORD 1 ]-+---------------------------
id | 1
time | 09:30
humanize_time | Early Morning - (9.30 am)
value | 570
-[ RECORD 2 ]-+---------------------------
id | 2
time | 11:30
humanize_time | Late Morning - (11.30 am)
value | 690
-[ RECORD 3 ]-+---------------------------
id | 3
time | 13:30
humanize_time | Early Afternoon - (1.30pm)
value | 810
-[ RECORD 4 ]-+---------------------------
id | 4
time | 15:30
humanize_time | Late Afternoon - (3.30 pm)
value | 930
¿Cómo iniciar psql con / x auto?
Configure /x auto
command en el inicio agregándolo a .psqlrc
en su carpeta de inicio y reiniciando psql. Consulte la sección ''Archivos'' en el documento psql para obtener más información .
~ / .psqlrc
/x auto
Solo necesitaba pasar más tiempo mirando la documentación. Este comando:
/x on
haré exactamente lo que yo quería. Aquí hay algunos resultados de muestra:
select * from dda where u_id=24 and dda_is_deleted=''f'';
-[ RECORD 1 ]------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dda_id | 1121
u_id | 24
ab_id | 10304
dda_type | CHECKING
dda_status | PENDING_VERIFICATION
dda_is_deleted | f
dda_verify_op_id | 44938
version | 2
created | 2012-03-06 21:37:50.585845
modified | 2012-03-06 21:37:50.593425
c_id |
dda_nickname |
dda_account_name |
cu_id | 1
abd_id |
También asegúrese de revisar / H, que activa / desactiva la salida HTML. No es necesariamente fácil de leer en la consola, pero es interesante para verter en un archivo (ver / o) o pegar en una ventana del editor / navegador para ver, especialmente con múltiples filas de datos relativamente complejos.
Tiene tantas opciones, ¿cómo podría estar confundido :-)? Los controles principales son:
# /pset format
# /H
# /x
# /pset pager off
Cada uno tiene opciones e interacciones con los demás. Las opciones más automáticas son:
# /x off;/pset format wrapped
# /x auto
La nueva opción "/ x auto" cambia a la visualización línea por línea solo "si es necesario".
-[ RECORD 1 ]---------------
id | 6
description | This is a gallery of oilve oil brands.
authority | I love olive oil, and wanted to create a place for
reviews and comments on various types.
-[ RECORD 2 ]---------------
id | 19
description | XXX Test A
authority | Testing
El antiguo "/ pset format wrap" es similar, ya que trata de encajar perfectamente los datos en la pantalla, pero no se alinea si los encabezados no encajan. Aquí hay un ejemplo de envuelto:
id | description | authority
----+--------------------------------+---------------------------------
6 | This is a gallery of oilve | I love olive oil, and wanted to
; oil brands. ; create a place for reviews and
; ; comments on various types.
19 | Test Test A | Testing
Una cosa interesante es que podemos ver las mesas horizontalmente, sin plegarlas. Podemos usar la variable de entorno PAGER
. psql hace uso de él. puedes establecer
export PAGER=''/usr/bin/less -S''
o simplemente less -S
si ya está disponible en la línea de comandos, si no con la ubicación correcta. -S para ver las líneas desplegadas. puede pasar en cualquier visor personalizado u otras opciones con él.
He escrito más en Psql Horizontal Display.
puede utilizar el zenity para mostrar el resultado de la consulta como tabla html.
Primero implementa el script bash con el siguiente código:
cat> ''/tmp/sql.op''; zenity --text-info --html --filename = ''/ tmp / sql.op'';
Guárdalo como mypager.sh
Luego, exporte la variable de entorno PAGER estableciendo la ruta completa del script como valor.
por ejemplo: - exportar PAGER = ''/ path / mypager.sh''
Luego inicie sesión en el programa psql y luego ejecute el comando / H
Y, finalmente, ejecutar cualquier consulta, la salida presentada se mostrará en el zenity en formato de tabla html.
pspg
es una herramienta simple que ofrece formato avanzado de tablas, desplazamiento horizontal, búsqueda y muchas más características.
git clone https://github.com/okbob/pspg.git
cd pspg
./configure
make
make install
luego asegúrese de actualizar la variable PAGER
, por ejemplo, en su ~/.bashrc
export PAGER="pspg -s 6"
donde -s
representa la combinación de colores ( 1-14
). Si está utilizando repositorios pgdg, simplemente instale un paquete (en una distribución similar a Debian):
sudo apt install pspg