PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment rechercher une valeur spécifique dans toutes les tables (PostgreSQL) ?

Que diriez-vous de vider le contenu de la base de données, puis d'utiliser 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');

Le même utilitaire, pg_dump, peut inclure des noms de colonne dans la sortie. Changez simplement --inserts à --column-inserts . De cette façon, vous pouvez également rechercher des noms de colonnes spécifiques. Mais si je cherchais des noms de colonnes, je viderais probablement le schéma au lieu des données.

$ 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');