Поиск в Postgresql по значению ячейки

Появилась задача найти таблицу в крупной базе, в которой содержится ячейка с определенным значением. Наименование таблицы неизвестно. 2 способа решения. Первый, когда название ячейки известно или можно угадать(status например):


for tbl in `psql -qAt -c "SELECT table_name FROM information_schema.tables WHERE table_type='BASE TABLE' AND table_schema='public';" DATABASE_NAME` ; do
 echo $tbl;
 psql -c "select statustext from \"$tbl\" WHERE status like '%SEARCHED_TEXT%'" DATABASE_NAME;
done

Соответственно DATABASE_NAME-имя базы,SEARCHED_TEXT — текст, который ищем.
Второй вариант, когда вообще нет ничего, кроме искомого значения:


pg_dump --data-only --insert DATABASE_NAME|grep SEARCHED_TEXT

Соответственно DATABASE_NAME-имя базы,SEARCHED_TEXT — текст, который ищем.

Понравилась статья? Поделиться с друзьями: