0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PostgreSQL テーブルのバックアップ作成と削除

Last updated at Posted at 2020-02-04

既存テーブルのバックアップと削除

前提として。

テーブルAを複製し、テーブルBを作る場合

CREATE TABLE "tbl_b" AS SELECT * FROM "tbl_a"

複製元のテーブル名称がtbl_a_yyyymmdd等になっており、テーブル名称にtbl_aを含むテーブルすべてを複製したい場合

まずは、以下SQLを実行し、テーブルの数分のSQLを発行し、
抽出結果のSQLをコピーし、それを実行する。
relnameはテーブル、インデックス、ビューなどの名前を表しているので、変更しなくてOK
pg_stat_user_tablesはPostgreSQLのユーザテーブル情報を指しており、こちらも変更せずそのままでOK。
WHERE句でテーブル名のLIKE検索をする。

SELECT
  'CREATE TABLE '||'"'||relname||'_backup" AS '||'SELECT * FROM ' ||'"'||relname||'";'
FROM
  pg_stat_user_tables
WHERE
  relname LIKE 'tbl_a%';

逆にバックアップ作成後に、バックアップ元のテーブルのみを削除したい場合

SELECT
  'DROP TABLE '||'"'||relname||'"'||';'
FROM
  pg_stat_user_tables
WHERE
  relname LIKE 'tbl_a%'
AND
  relname NOT LIKE '%_backup'
;
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?