Substitutionsvariablen in psql-Skripten

Als Postgresql-Benutzer und -Administratoren neigen wir dazu, viele Skripte zu erstellen und sie routinemäßig auszuführen, für häufige Abfragen, die wir für die Datenbank ausführen müssen. Es ist wahrscheinlich, dass Sie in einigen dieser Skripts Werte parametrisieren möchten, die unter Filterbedingungen verwendet werden. Im Folgenden finden Sie ein Beispiel dafür, wie dies möglich ist.

psql ist das terminalbasierte Frontend-Tool für die Interaktion mit postgresql. Sie können Skripte ausführen, die in Dateien im Dateisystem gespeichert sind, indem Sie die Direktive \i in plsql verwenden. Sie können den Befehl \set verwenden, um Variablen in psql zu setzen. Wenn Sie zur Eingabe des vom Benutzer einzugebenden Werts auffordern möchten, können Sie die Direktive \prompt verwenden.

\prompt 'Geben Sie den Tabellennamen ein:' tabname
select last_vacuum,last_autovacuum,last_analyze ,last_autoanalyze,n_live_tup,n_dead_tup
from pg_stat_user_tables
where relname = :'tabname';

Wenn Sie dies nun von psql aus ausführen, werden Sie zuerst zur Eingabe des Tabellennamens aufgefordert und dann werden die Ergebnisse für den von Ihnen eingegebenen Tabellennamen angezeigt.

postgres=# \i pgstats.sql

Geben Sie den Tabellennamen ein: nflstats

last_vacuum | last_autovacuum | last_analyze | last_autoanalyze | n_live_tup | n_dead_tup

————-+—————–+——————————+——————————-+————+————

| | 2020-06-08 18:07:36.29538+00 | 2020-06-08 15:37:48.738104+00 | 270418 | 0

 

Dieser Beitrag wurde unter POSTGRES veröffentlicht. Setze ein Lesezeichen auf den Permalink.