PostgreSQL: fecha de creación de una tabla

12

Recientemente terminé un proyecto, durante el cual se crearon muchas tablas DB.

La mayoría de estas tablas contienen basura temporal, y estoy buscando una manera simple de enumerar todas estas tablas.

¿Hay alguna manera de enumerar todas las tablas de bases de datos ordenadas según su fecha de creación?

Adam Matan
fuente

Respuestas:

5

Sí, es posible, con limitaciones.

Ver

/programming/18849756/automatically-drop-tables-and-indexes-older-than-90-days/18852752#18852752

para mayor información

WITH CTE AS
(
    SELECT 
        table_name 

        ,
        (
            SELECT 
                MAX(pg_ls_dir::int)::text 
            FROM pg_ls_dir('./base') 
            WHERE pg_ls_dir <> 'pgsql_tmp' 
            AND  pg_ls_dir::int  <= (SELECT relfilenode FROM pg_class WHERE relname ILIKE table_name)
        ) as folder 


        ,(SELECT relfilenode FROM pg_class WHERE relname ILIKE table_name) filenode

    FROM information_schema.tables
    WHERE table_type = 'BASE TABLE'
    AND table_schema = 'public'
)

SELECT 
    table_name 
    ,(
        SELECT creation 
        FROM pg_stat_file(
            './base/' || folder || '/' || filenode 
        )
    ) as creation_time
FROM CTE;
Dilema
fuente
3

No, eso no es posible hasta donde yo sé.

Ese valor no se almacena en ninguna de las tablas del sistema (sin embargo, sería bueno).

un caballo sin nombre
fuente
1

Esta consulta

select pslo.stasubtype, pc.relname, pslo.statime
from pg_stat_last_operation pslo
join pg_class pc on(pc.relfilenode = pslo.objid)
and pslo.staactionname = 'CREATE'
order by pslo.statime desc 

Seguramente ayudará.

NB: solo funciona en greenplum.

Gurupreet Singh Bhatia
fuente
0

No es posible obtener el tiempo de creación de la tabla, pero en realidad puede obtener la lista de tablas que se crearon recientemente si aspira la base de datos regularmente. Puede usar esta consulta: seleccione * de pg_stat_user_tables donde last_vacuum> now () - intervalo '3 días'; Puede cambiar el intervalo según su necesidad.

usuario3837299
fuente