PostgreSQL: data di creazione di una tabella


12

Di recente ho terminato un progetto, durante il quale sono state create molte tabelle DB.

La maggior parte di queste tabelle contiene spazzatura temporanea e sto cercando un modo semplice per elencare tutte queste tabelle.

C'è un modo per elencare tutte le tabelle DB ordinate in base alla loro data di creazione?

Risposte:



5

Sì, è possibile - con limitazioni.

Vedere

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

per maggiori informazioni

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, questo non è possibile per quanto ne so.

Quel valore non è memorizzato in nessuna delle tabelle di sistema (sarebbe bello però).


1

Questa domanda

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 

aiuterà sicuramente.

NB: funziona solo su greenplum.


0

Non è possibile ottenere il tempo di creazione della tabella, ma in realtà è possibile ottenere l'elenco delle tabelle create di recente se si esegue il vuoto del database regolarmente. È possibile utilizzare questa query: selezionare * da pg_stat_user_tables dove last_vacuum> now () - intervallo '3 giorni'; puoi cambiare l'intervallo secondo le tue necessità.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.