Как перечислить все пользовательские таблицы в SQL Anywhere вместе с их количеством строк?

Я хотел бы перечислить все доступные таблицы в моей БД и иметь возможность сортировать и фильтровать по количеству строк.


person maf-soft    schedule 29.10.2013    source источник


Ответы (1)


Это просто:

select table_name, count
from systable
where primary_root<>0 and creator=1
order by 1

или как насчет добавления количества столбцов и имен?

select t.table_name, t.count rows, count(*) cols,
  list(c.column_name order by c.column_id) col_list
from systable t
left outer join syscolumn c on c.table_id=t.table_id
where t.primary_root<>0 and t.creator=1
group by t.table_name, t.count
order by 1

Надеюсь это поможет...

Дополнительная информация: systable и syscolumn, начиная с SQL Anywhere 10, представляют собой только представления с обратной совместимостью, а Sybase предлагает вместо этого использовать более новые системные таблицы ... Поскольку я использую версии 9 и 11, я придерживаюсь их.

person maf-soft    schedule 29.10.2013
comment
обратите внимание, что в этом случае primary_root‹›0 не будет отображать таблицы без первичного ключа, поэтому вы можете пропустить некоторые важные. - person edelwater; 21.02.2017