Format de sortie alternatif pour psql

J’utilise PostgreSQL 8.4 sur Ubuntu. J’ai un tableau avec les colonnes c1 à cN . Les colonnes sont suffisamment larges pour que la sélection de toutes les colonnes entraîne le retour d’une ligne de résultats de requête à plusieurs resockets. Par conséquent, la sortie est difficile à lire.

Lorsque les résultats de la requête ne représentent que quelques lignes, il serait pratique de voir les résultats de la requête de telle sorte que chaque colonne de chaque ligne se trouve sur une ligne distincte, par exemple

  c1:  c2:  ... cN:  ---- some kind of delimiter ---- c1:  etc. 

Je lance ces requêtes sur un serveur sur lequel je préférerais ne pas installer de logiciel supplémentaire. Y a-t-il un paramètre psql qui me permettra de faire quelque chose comme ça?

J’avais juste besoin de passer plus de temps à regarder la documentation. Cette commande:

 \x on 

fera exactement ce que je voulais. Voici un exemple de sortie:

 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 | 

(Nouveau) Mode Auto étendu: \ x auto

Nouveau pour Postgresql 9.2; PSQL adapte automatiquement les enregistrements à la largeur de l’écran. auparavant, vous n’aviez que le mode étendu activé et désactivé et vous devez basculer entre les modes si nécessaire.

  • Si l’enregistrement peut tenir dans la largeur de l’écran; psql utilise un formatage normal.
  • Si l’enregistrement ne peut pas tenir dans la largeur de l’écran; psql utilise le mode étendu.

Pour obtenir cet usage: \ x auto

Postgresql 9.5 Documentation sur commande PSQL.


Grand écran, formatage 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) 

Écran étroit, formatage étendu:

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

Comment démarrer psql avec \ x auto

Configurez \x auto commande \x auto au démarrage en l’ajoutant à .psqlrc dans votre dossier personnel et en redémarrant psql. Regardez dans la section “Fichiers” du document psql pour plus d’informations .

~ / .psqlrc

 \x auto 

Vous avez tellement de choix, comment pouvez-vous être confus :-)? Les principaux contrôles sont les suivants:

 # \pset format # \H # \x # \pset pager off 

Chacun a des options et des interactions avec les autres. Les options les plus automatiques sont les suivantes:

 # \x off;\pset format wrapped # \x auto 

L’option “\ x auto” plus récente passe à l’affichage ligne par ligne uniquement “si nécessaire”.

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

L’ancien “\ pset format wrapped” est similaire en ce qu’il essaie d’ajuster soigneusement les données à l’écran, mais revient à non aligné si les en-têtes ne correspondent pas. Voici un exemple d’emballage:

  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 

Veillez également à vérifier \ H, qui active / désactive la sortie HTML. Pas nécessairement facile à lire sur la console, mais intéressant pour la sauvegarde dans un fichier (voir \ o) ou le collage dans un éditeur / une fenêtre de navigateur pour la visualisation, en particulier avec plusieurs lignes de données relativement complexes.

Une chose intéressante est que nous pouvons voir les tables horizontalement, sans plier. nous pouvons utiliser la variable d’environnement PAGER . psql s’en sert. vous pouvez définir

 export PAGER='/usr/bin/less -S' 

ou juste less -S si son est déjà disponible en ligne de commande, sinon avec le bon emplacement. -S pour afficher les lignes dépliées. vous pouvez transmettre n’importe quel visualiseur personnalisé ou d’autres options.

J’ai écrit plus dans Psql Horizontal Display

pspg est un outil simple qui offre un formatage avancé, un défilement horizontal, une recherche et bien d’autres fonctions.

 git clone https://github.com/okbob/pspg.git cd pspg ./configure make make install 

alors assurez-vous de mettre à jour la variable PAGER par exemple dans votre ~/.bashrc

 export PAGER="pspg -s 6" 

-s signifie schéma de couleurs ( 1-14 ). Si vous utilisez des référentiels pgdg, installez simplement un paquet (sur une dissortingbution de type Debian):

 sudo apt install pspg 

exemple pspg

vous pouvez utiliser le zenity pour afficher le résultat de la requête sous forme de tableau HTML.

  • implémentez d’abord le script bash avec le code suivant:

    cat> ‘/tmp/sql.op’; zenity –text-info –html –filename = ‘/ tmp / sql.op’;

    enregistrez-le comme mypager.sh

  • Exportez ensuite la variable d’environnement PAGER en définissant le chemin complet du script en tant que valeur.

    par exemple: – export PAGER = ‘/ path / mypager.sh’

  • Ensuite, connectez-vous au programme psql puis exécutez la commande \ H

  • Et enfin exécuter n’importe quelle requête, la sortie présentée sera affichée dans le zenity au format tableau html.