powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как посчитать количество записей во всех таблицах?
6 сообщений из 6, страница 1 из 1
Как посчитать количество записей во всех таблицах?
    #39167418
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как посчитать количество записей в каждой таблице базы? типа такого:

таблица1 количество1
таблица2 количество2
...
таблицаН количествоН
...
Рейтинг: 0 / 0
Как посчитать количество записей во всех таблицах?
    #39167449
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

если примерное число записей устроит, то можно из pg_class взять или из pg_stat_user_tables (значения могут быть разные):

Код: sql
1.
2.
3.
4.
5.
6.
select relname, reltuples from pg_class c
left join pg_namespace n on (n.oid = c.relnamespace)
where nspname not in ('pg_catalog', 'information_schema') and
  nspname !~ '^pg_toast' and relkind IN ('r');

select schemaname, relname, n_live_tup from pg_stat_user_tables;



если точное нужно - то хранимкой считать.
...
Рейтинг: 0 / 0
Как посчитать количество записей во всех таблицах?
    #39167577
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexiusWinnipuh,

если примерное число записей устроит, то можно из pg_class взять или из pg_stat_user_tables (значения могут быть разные):

Код: sql
1.
2.
3.
4.
5.
6.
select relname, reltuples from pg_class c
left join pg_namespace n on (n.oid = c.relnamespace)
where nspname not in ('pg_catalog', 'information_schema') and
  nspname !~ '^pg_toast' and relkind IN ('r');

select schemaname, relname, n_live_tup from pg_stat_user_tables;



если точное нужно - то хранимкой считать.

мне нужно сравнивать, хотелось бы точное, одним запросом или вызовом функции
...
Рейтинг: 0 / 0
Как посчитать количество записей во всех таблицах?
    #39167590
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел такое

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE FUNCTION rowcount_all(schema_name text default 'public')
  RETURNS table(table_name text, cnt bigint) as
$$
declare
 table_name text;
begin
  for table_name in SELECT c.relname FROM pg_class c
    JOIN pg_namespace s ON (c.relnamespace=s.oid)
    WHERE c.relkind = 'r' AND s.nspname=schema_name
  LOOP
    RETURN QUERY EXECUTE format('select cast(%L as text),count(*) from %I.%I',
       table_name, schema_name, table_name);
  END LOOP;
end
$$ language plpgsql;
...
Рейтинг: 0 / 0
Как посчитать количество записей во всех таблицах?
    #39168101
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

ты должен знать как получить

1) названия всех таблиц, принадлежащих определенной схеме
2) имена и свойства всех полей отдельной таблицы

спасибо
...
Рейтинг: 0 / 0
Как посчитать количество записей во всех таблицах?
    #39168282
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuhхотелось бы точноепонятие точности опирается на конситентность, для чего придется залочить изменения во всей базе, пока считаются каунты и принимается решение на основе полученных значений.
в противном случае нет смысла говорить о "точности", статистические данные предполагают доверительную погрешность.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как посчитать количество записей во всех таблицах?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]