Pertanyaan PostgreSQL: Waktu pembuatan tabel


Bagaimana saya bisa menemukan waktu pembuatan tabel di Postgresql.

Contoh,

Jika saya membuat file saya dapat menemukan waktu pembuatan file seperti itu saya ingin tahu waktu pembuatan tabel.


32
2018-04-05 06:20


asal


Jawaban:


Saya telah melihat melalui tabel pg_ *, dan saya tidak dapat menemukan waktu pembuatan apa pun di sana. Ini mungkin untuk menemukan file tabel, tetapi kemudian di Linux Anda tidak bisa mendapatkan waktu pembuatan file. Jadi saya kira jawabannya adalah Anda hanya dapat menemukan informasi ini di Windows, menggunakan langkah-langkah berikut:

  • dapatkan id basis data dengan select datname, datdba from pg_database;
  • dapatkan id filenode tabel dengan select relname, relfilenode from pg_class;
  • temukan file tabel dan cari waktu pembuatannya; Saya pikir lokasinya harus seperti itu <PostgreSQL folder>/main/base/<database id>/<table filenode id> (tidak yakin apa itu di Windows).

14
2018-04-05 07:42



Anda tidak bisa - informasi tidak dicatat di mana pun. Melihat file tabel tidak selalu memberikan Anda informasi yang tepat - ada operasi tabel yang akan membuat file baru untuk Anda, dalam hal ini tanggal akan diatur ulang.


17
2018-04-05 09:15



Saya tidak berpikir itu mungkin dari dalam PostgreSQL, tetapi Anda mungkin akan menemukannya dalam waktu pembuatan file tabel yang mendasarinya.


2
2018-04-05 06:48



Disarankan di sini:

SELECT oid FROM pg_database WHERE datname = 'mydb';

Kemudian (dengan asumsi oid adalah 12345):

ls -l $PGDATA/base/12345/PG_VERSION

Solusi ini mengasumsikan itu PG_VERSION adalah yang paling mungkin dimodifikasi setelah penciptaan.

NB: Jika PGDATA tidak ditentukan, periksa Di mana PostgreSQL menyimpan database?


0
2018-05-01 21:36



Anda bisa mendapatkannya dari pg_stat_last_operation. Berikut cara melakukannya:

select * from pg_stat_last_operation where objid = 'table_name'::regclass order by statime;

Tabel ini menyimpan operasi berikut:

select distinct staactionname from pg_stat_last_operation;

 staactionname 
---------------
 ALTER

 ANALYZE

 CREATE

 PARTITION

 PRIVILEGE

 VACUUM
(6 rows)

-3
2017-11-07 13:51



--pertanyaan

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 

akan membantu mencapai hasil yang diinginkan

(mencobanya di greenplum)


-3