1. ホーム
  2. postgresql

[解決済み] すべてのテーブルから特定の値を検索する方法(PostgreSQL)

2022-05-24 13:12:42

質問

以下のような検索は可能でしょうか? すべてのテーブルのすべてのカラムを を検索することはできますか?

似たような質問があります ここに をご覧ください。

どのように解決するのですか?

データベースの中身をダンプして、その上で grep ?

$ pg_dump --data-only --inserts -U postgres your-db-name > a.tmp
$ grep United a.tmp
INSERT INTO countries VALUES ('US', 'United States');
INSERT INTO countries VALUES ('GB', 'United Kingdom');

同じユーティリティであるpg_dumpは、出力に列名を含めることができます。単に --inserts--column-inserts . そうすれば、特定のカラム名を検索することもできます。しかし、もし私がカラム名を探していたなら、おそらくデータではなくスキーマをダンプするでしょう。

$ pg_dump --data-only --column-inserts -U postgres your-db-name > a.tmp
$ grep country_code a.tmp
INSERT INTO countries (iso_country_code, iso_country_name) VALUES ('US', 'United  States');
INSERT INTO countries (iso_country_code, iso_country_name) VALUES ('GB', 'United Kingdom');