Placing query output into psql variables
It is also possible to store some values that have been produced by a query into variables – for instance, to reuse them later in other queries.
In this recipe, we will demonstrate this approach with a concrete example.
Getting ready
In the Controlling automatic database maintenance recipe of Chapter 9, Regular Maintenance, we will describe VACUUM
, showing that it runs regularly on each table based on the number of rows that might need vacuuming (dead rows). The VACUUM
command will run if that number exceeds a given threshold, which by default is just above 20% of the row count.
In this recipe, we will create a script that picks the table with the largest number of dead rows and runs VACUUM
on it, assuming you have some tables already in existence.
How to do it…
The script is as follows:
SELECT schemaname
, relname
, n_dead_tup
, n_live_tup
FROM pg_stat_user_tables
ORDER BY n_dead_tup DESC
LIMIT 1
...