PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie suche ich einen bestimmten Wert in allen Tabellen (PostgreSQL)?

Wie wäre es, wenn Sie den Inhalt der Datenbank ausgeben und dann grep verwenden ?

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

Das gleiche Dienstprogramm, pg_dump, kann Spaltennamen in die Ausgabe aufnehmen. Ändern Sie einfach --inserts zu --column-inserts . Auf diese Weise können Sie auch nach bestimmten Spaltennamen suchen. Aber wenn ich nach Spaltennamen suchen würde, würde ich wahrscheinlich das Schema anstelle der Daten ausgeben.

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