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?

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;

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).


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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.