Postgres, как получить доступ ко всем таблицам в базе данных итеративно, подзапрос? - PullRequest
0 голосов
/ 17 апреля 2020

Привет Postgres сообщество: D

Я пытаюсь прочитать содержимое таблиц, чтобы gr asp изображение их. Итак, мой вопрос: как это можно сделать, чтобы отобразить весь заголовок таблиц в базе данных, давая тот же результат, что и наивные наивные запросы. Я предполагаю, что должен быть причудливый способ только одного запроса строки, чтобы сделать это .. Пожалуйста, помогите мне!

# naive
SELECT * FROM mytable0001;
SELECT * FROM mytable0002;
SELECT * FROM mytable0003;
...
SELECT * FROM mytable9999;


# wannabe
SELECT * FROM foo (SELECT table_name FROM information_schema.tables) AS foo limit 5;

Спасибо заранее!

1 Ответ

0 голосов
/ 17 апреля 2020

Вы можете попробовать использовать команды psql CLI и \ gexe c. Со следующим вводом:

select format('select * from %s;',tablename) 
from pg_tables
where tablename like 'table%'
\gexec

Вы получаете в один go:

select format('select * from %s;',tablename) 
from pg_tables
where tablename like 'table%'
select * from table0001;
 c1 |   c2    
----+---------
  1 | table 1
(1 row)

select * from table0002;
 c1 |   c2    
----+---------
  1 | table 2
  2 | table 2
(2 rows)

select * from table0003;
 c1 |   c2    
----+---------
  1 | table 3
  2 | table 3
  3 | table 3
(3 rows)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...