PostgreSQL proporciona un archivo de inicio (.psqlrc) que se ejecuta antes de conectarse a la base de datos cuando se usa con la utilidad psql. Con el archivo .psqlrc, puede colocar todas sus consultas importantes con un alias de una palabra mediante el comando 'establecer' y ejecutarlo en la terminal psql en lugar de escribir consultas grandes. Si no ve el archivo .psqlrc en el directorio de inicio del usuario 'postgres', puede crearlo explícitamente. Lo probé y me resultó muy útil.
Puntos en .psqlrc:- .psqlrc es un archivo de inicio, se ejecuta cuando se conecta al clúster.
- El archivo .psqlrc residirá en el directorio de inicio del usuario 'postgres'.
- opciones psql -X o -c, no lea el archivo .psqlrc.
- El archivo .psqlrc es para el nivel de sesión completo, no para el nivel de la base de datos.
Captura de pantalla de mi terminal:
Veamos cómo implementar esto.
Sintaxis:
set <alias-variable-name> 'query'Nota:si su consulta tiene comillas simples o dobles, utilice ' o ” en la consulta. Consultas de muestra para colocar en el archivo .psqlrc con 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!
Uso:
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)
¿No fue útil? Disfrutar… :). Volveré con más cosas.