Общее количество полей во всех таблицах в базе данных - PullRequest
6 голосов
/ 21 мая 2011

У меня огромная база данных с сотнями таблиц, и я хочу узнать общее количество полей (столбцов), определенных во всех таблицах.

Есть ли SQL-запрос, который может дать мне это? Если нет, то какой будет лучший путь?

Ответы [ 6 ]

4 голосов
/ 21 мая 2011

Это то, что вы хотите?

select count(*)
from information_schema.columns
where table_schema = 'your_schema'

Вы можете запустить его так, чтобы убедиться, что это разумно:

select table_name, column_name
from information_schema.columns
where table_schema = 'your_schema'
order by 1, 2
3 голосов
/ 21 мая 2011

Попробуйте (при входе в вашу текущую схему):

select count(*) from information_schema.columns where table_schema = DATABASE();
1 голос
/ 23 мая 2011

Я новичок в MySQL, но если таблица information_schema.columns - это таблица с table_name и column_name , то вы можете использовать следующий запрос

select table_name, count( distinct column_name ) column_number_used
from information_schema.columns 
where table_schema = 'your_schema' 
group by table_name

это должно дать все имена таблиц с соответствующим номером столбца, используемым в этой таблице.

0 голосов
/ 15 октября 2012

Приведенный ниже пример может работать и изменять запросы согласно вашему требованию.

Use [Your_DB_Name]

/* Count Total Number Of Tables */
SELECT COUNT(*) AS 'Total Tables' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'

/* Count Total Number Of Views */
SELECT COUNT(*)  AS 'Total Views'  FROM INFORMATION_SCHEMA.VIEWS

/* Count Total Number Of Stored Procedures */
SELECT COUNT(*)  AS 'Total SPs'  FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE'

/* Count Total Number Of UDF(User Defined Functions) */
SELECT COUNT(*)  AS 'Total Functions' FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'FUNCTION'

Пример:

enter image description here

0 голосов
/ 21 мая 2011

Вы можете получить нужные запросы из этого проекта с открытым исходным кодом, который называется whereindb . Окончательный результат этого проекта идет дальше, чем вам нужно, но вы можете посмотреть код и взять ту часть, в которой он вычисляет все части таблиц.

0 голосов
/ 21 мая 2011

Попробуйте это:

SELECT COUNT(*) 
FROM INFORMATION_SCHEMA.COLUMNS
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...