PostgreSQL, fournit un fichier de démarrage (.psqlrc) qui s'exécute avant de se connecter à la base de données lors de l'utilisation avec l'utilitaire psql. En utilisant le fichier .psqlrc, vous pouvez placer toutes vos requêtes importantes avec un alias de mot par la commande 'set' et l'exécuter dans le terminal psql au lieu de taper de grandes requêtes. Si vous ne voyez pas le fichier .psqlrc dans le répertoire personnel de l'utilisateur "postgres", vous pouvez le créer explicitement. Je l'ai essayé et je l'ai trouvé très utile.
Points sur .psqlrc :- .psqlrc est un fichier de démarrage, s'exécute lors de la connexion au cluster.
- Le fichier .psqlrc résidera dans le répertoire d'accueil de l'utilisateur "postgres".
- les options psql -X ou -c, ne lisent pas le fichier .psqlrc.
- Le fichier .psqlrc est destiné au niveau de la session complète et non au niveau de la base de données.
Capture d'écran de mon terminal :
Voyons comment implémenter cela.
Syntaxe :
set <alias-variable-name> 'query'Remarque :si votre requête comporte des guillemets simples ou doubles, utilisez " ou " dans la requête. Exemples de requêtes à placer dans le fichier .psqlrc avec l'alias :
vi ~/.psqlrc
set PAGER OFF
set waits 'SELECT pg_stat_activity.procpid, pg_stat_activity.current_query, pg_stat_activity.waiting, now() - pg_stat_activity.query_start as "totaltime", pg_stat_activity.backend_start FROM pg_stat_activity WHERE pg_stat_activity.current_query !~ '%IDLE%'::text AND pg_stat_activity.waiting = true;;'
set locks 'select pid,mode,current_query from pg_locks,pg_stat_activity where granted=false and locktype='transactionid' and pid=procpid order by pid,granted;;'
:wq!
Utilisation :
postgres=# :waits
procpid | current_query | waiting | totaltime | backend_start
---------+-------------------------------+---------+-----------------+----------------------------------
9223 | insert into locks VALUES (1); | t | 00:00:18.901773 | 2011-10-08 00:29:10.065186+05:30
(1 row)
postgres=# :locks
pid | mode | current_query
------+-----------+-------------------------------
9223 | ShareLock | insert into locks VALUES (1);
(1 row)
N'était-ce pas utile. Profitez… :). Sera de retour avec d'autres trucs.