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 |