【PostgreSQL】テーブル一覧とデータ件数を取得するSQL
テーブル一覧を取得する
テーブル一覧を取得するSQL文を紹介します。
※ここで紹介するSQLは、そのまま実行できるので試してみて下さい。
--テーブル一覧をテーブル名順に取得するSQL
select tablename from pg_tables
where schemaname != 'pg_catalog' order by tablename;
テーブル一覧とそのデータ件数を表示する
テーブルごとのデータ数を一覧表示するSQL文を紹介します。
--テーブルごとのデータ数を表示する
SELECT
pg_class.relname , pg_class.reltuples
FROM pg_stat_user_tables
INNER JOIN pg_class ON pg_stat_user_tables.relname = pg_class.relname
order by cast(pg_class.reltuples as numeric) desc;
テーブルの列一覧を取得する
テーブルの列一覧を取得するSQL文です。
ここでは3列のみ取得していますが、取得できる列はその他にもたくさんあります。
すべての列を見るには、列名を「*」(アスタリスク)に変更し、実行してみて下さい。
--'テーブル名'に存在する列一覧を取得する
select ordinal_position , column_name , data_type
from information_schema.columns
where table_name='テーブル名' order by ordinal_position;
delete文を生成するSQL
テーブル一覧を取得するSQLを使い、delete文を作成するSQLです。
※このSQLを投げると「delete from テーブル名;」の文が結果に出力されます。
--テーブル一覧からdelete文を作成する
select
'delete from ' || tablename || ';' as del_sql from pg_tables -- delete文
where schemaname != 'pg_catalog'
--テーブル名で抽出するなら下の文の使います
--and tablename like '%テーブル名を指定%';