我正在尝试解决另一个棘手的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的各种查询,但是无法获得一个返回我需要的数据的查询。
查询只会得到一个表的行数,它的大小以MB为单位,它是主键列,它是auto_increment键列。
我感谢任何帮助。
由于
答案 0 :(得分:3)
这样的事情会对你有所帮助:
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 = '............'