2009-08-15 7 views
0

以下のコマンドを実行すると、データベースの名前を知ることができます。テーブル数を指定したmysqlshow

$ mysqlshowは

しかし、どのように私は、各データベース内のテーブルの数と、空のテーブルの数が知っているのですか?例えば、

デシベル数は、データベース内のテーブルを取得するには

SHOW TABLES; 

を使用することができ、空

テスト10 5

MYDB 122 0

クライアント34 34

答えて

2

。空yablesためTABLE_ROWS列に

select count(*) from information_schema.tables 
where table_schema = <My Schema> 
and table_type = 'BASE TABLE'; 

とフィルタ:MySQLサーバ上のすべてのデータベースに関するメタデータが含まれてい

特別なデータベースがある
select count(*) from information_schema.tables 
where table_schema = <My Schema> 
and table_type = 'BASE TABLE' 
and table_rows = 0; 
+0

カウントからビューを削除するには、両方のステートメントのwhere句に 'TABLE_TYPE' = 'BASE TABLE'を追加する必要があります。 – Scott

+0

お寄せいただきありがとうございます。それをクエリに追加しました。 – Zed

0

と返された行を数えます。 (それは非常に遅くなることができますが)

また、これを行うことができます:あなたはそれにpriviligesを持っている場合は、INFORMATION_SCHEMA.TABLESからのカウント(*)を選択することができます

SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'my_database'; 
1
SHOW DATABASES; 
SHOW TABLES FROM --your_db_here--; 
SELECT COUNT(*) = 0 FROM --your_table_here--; 
1

、INFORMATION_SCHEMA。

SELECT `TABLE_NAME`, `TABLE_ROWS` 
FROM `information_schema`.`TABLES` 
WHERE `TABLE_SCHEMA` = 'NameOfDatabaseYouAreInterestedIn' 
AND `TABLE_TYPE` = 'BASE TABLE' 

TABLE_ROWS常に完全に正確ではありません、あなたは、テーブルをループにしたいと私はこのことができます場合は知らないが、テーブルごとの行数を表示するmysqlshowへのオプションがあり、カウント

+0

すべてのデータベースに関する情報が必要な場合は、where句からTABLE_SCHEMAを削除できます – Scott

0

を得ることができます(--count):

$mysqlshow --count *p* 
Wildcard: %p% 
+-------------+--------+--------------+ 
| Databases | Tables | Total Rows | 
+-------------+--------+--------------+ 
| implantacao |  25 |   134 | 
| pmsp  |  80 |  8561947 | 
| tmp   |  7 |   5 | 
+-------------+--------+--------------+ 
3 rows in set. 

そして、あなたは、データベース名渡す場合:

$mysqlshow --count tmp 
Database: tmp 
+------------+----------+------------+ 
| Tables | Columns | Total Rows | 
+------------+----------+------------+ 
| builds  |  2 |   0 | 
| gtable  |  2 |   5 | 
| patterns |  9 |   0 | 
| products |  2 |   0 | 
| sig_types |  2 |   0 | 
| signatures |  2 |   0 | 
| versions |  2 |   0 | 
+------------+----------+------------+ 
7 rows in set. 

あなたは、テーブル名を追加し、それについての情報を取得することができます

$mysqlshow tmp gtable 
Database: tmp Table: gtable 
+--------+---------+-------------------+------+-----+---------+-------+---------------------------------+---------+ 
| Field | Type | Collation   | Null | Key | Default | Extra | Privileges      | Comment | 
+--------+---------+-------------------+------+-----+---------+-------+---------------------------------+---------+ 
| symbol | text | latin1_swedish_ci | YES |  |   |  | select,insert,update,references |   | 
| size | int(11) |     | YES |  |   |  | select,insert,update,references |   | 
+--------+---------+-------------------+------+-----+---------+-------+---------------------------------+---------+ 

は、より多くのオプション/情報についてmysqlshow --helpを見てください。

関連する問題