Я хотел бы перечислить все доступные таблицы в моей БД и иметь возможность сортировать и фильтровать по количеству строк.
Как перечислить все пользовательские таблицы в SQL Anywhere вместе с их количеством строк?
Ответы (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
обратите внимание, что в этом случае primary_root‹›0 не будет отображать таблицы без первичного ключа, поэтому вы можете пропустить некоторые важные.
- person edelwater; 21.02.2017