MySQL Query To Return, Schema_Name, Table_NAme, Count, Size_of_Table, Primary_Key и Auto_Increment_Key - PullRequest
0 голосов
/ 18 марта 2011

У меня есть еще один сложный запрос MySQL, который я пытаюсь выполнить. Мне нужен запрос, который вернет следующее в одной команде:

+----------+------------------------------+-----------+-------------+----------------+--------------------+
| Database | Table_Name                   | Count     | Size        | Primary-Key    | Auto_Increment_Key |
+----------+------------------------------+-----------+-------------+----------------+--------------------+
| mydb     | account_length               |      2408 | 0.04 Mb     | account_id     | account_id         |
| mydb     | account_log                  |      1225 | 0.09 Mb     | log_id         | NULL               |

Я все еще новичок в MySQL. Я пробовал различные запросы к information_schema, но не смог получить тот, который возвращает нужные мне данные.

Запрос просто получит количество строк таблицы, ее размер в МБ, столбец первичного ключа и столбец ключа auto_increment.

Я ценю любую помощь.

Спасибо

1 Ответ

3 голосов
/ 18 марта 2011

Как-то так вам поможет:

SELECT t.table_schema, 
       t.table_name, 
       Round(( t.data_length + t.index_length ) / 1048576, 2) AS sizemb, 
       c1.column_name                                         AS primarycol, 
       c2.column_name                                         AS 
       autoincrementcol 
FROM   information_schema.tables t 
       LEFT JOIN information_schema.columns c1 
         ON t.table_schema = c1.table_schema 
            AND t.table_name = c1.table_name 
            AND c1.column_key = 'PRI' 
       LEFT JOIN information_schema.columns c2 
         ON t.table_schema = c2.table_schema 
            AND t.table_name = c2.table_name 
            AND c2.extra = 'auto_increment' 
WHERE  t.table_schema = '............' 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...