উত্তর:
এটি স্ট্যাকওভারফ্লোতে পাওয়া গেছে: /programming/2577168/postgresql-table-creation-time
হ্যাঁ এটি সম্ভব - সীমাবদ্ধতার সাথে।
দেখা
/programming/18849756/automatically-drop-tables-and-indexes-older-than-90-days/18852752#18852752
আরো তথ্যের জন্য
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;
না, যতদূর আমি জানি এটি সম্ভব নয়।
এই মানটি কোনও সিস্টেমের সারণীতে সংরক্ষণ করা হয় না (যদিও এটি দুর্দান্ত হবে)।
এই জিজ্ঞাসা
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
অবশ্যই সাহায্য করবে।
এনবি: এটি কেবল গ্রিনপ্লামে কাজ করে।
টেবিল তৈরির সময় পাওয়া সম্ভব নয়, তবে আপনি যদি সম্প্রতি আপনার ডাটাবেসটি নিয়মিতভাবে শূন্য করে থাকেন তবে আপনি সম্প্রতি সারণীগুলির তালিকা পেতে পারেন। আপনি এই ক্যোয়ারীটি ব্যবহার করতে পারেন: pg_stat_user_tables থেকে * নির্বাচন করুন যেখানে শেষ_ভ্যাকুয়াম> এখন () - বিরতি '3 দিন'; আপনি আপনার প্রয়োজন অনুযায়ী ব্যবধান পরিবর্তন করতে পারেন।