postgresを使用して、バッチ処理でテーブル削除を行いたいです。
テーブルには日付がついており、1番古い日付のテーブルを削除したいです。
考えている処理としては、
1.1番古いテーブル名を見つける。
2.1で見つけたテーブル名を変数に入れる。
3.変数をdropして、テーブル削除を行う。
なのですが、1で躓いています。
データのソートでしたらやり方が見つかるのですが、テーブルのソート方法が見つからず、困っております。
助けていただけると嬉しいです。
何を持って一番古いテーブルとするんですか?
あと、テーブルはそんな頻繁に削除するものではないと思うのですが、どういう目的で削除するんですか?
テーブル名を_202101など月にし、判断したいと思っています。
目的としてはある程度古いデータは保持しておき、月イチで1番古い月のテーブルごと削除してDBの容量を空けたいです。
月をまたぐデータをSELECTしなければならず、毎月UNION ALLを増やして対応していたシステムで、日付を列に追加してひとつのテーブルにまとめたら?ってアドバイスしたことがあります。
一般的なDBの設計の場合、全期間のデータを同じテーブルに保持し、日付や年月のカラムを持たせ、既定年月を過ぎたレコードを削除するという設計になります。
レコードが減れば、そのデータ分、空き領域が確保されますので、目的は達成できるかと。

回答1件
あなたの回答
tips
プレビュー